我正在尝试运行位于 /Library/Java/jack.jar 的 jar,它可以工作:
java -jar /Library/Java/jack.jar
但是,我想在没有路径的情况下运行它,而依靠类路径。默认类路径包括 /Library/Java,但这会失败,并显示“无法访问 jarfile”:
java -jar jack.jar
为什么?而且,这也失败了(同样的错误):
java -cp /Library/Java -jar jack.jar
有什么问题/我做错了什么?
谢谢。
答案1
jar 文件无法通过这种方式执行。您需要提供 jar 文件的完整路径。类路径-cp classpath
指定目录、JAR 存档和 ZIP 存档的列表,用于搜索运行 Java 程序所需的类文件。但是,应使用完整路径访问要执行的 jar 文件。运行 jar 文件后,可以使用类路径来定位更多类和库。
顺便说一句,这不是提出此类问题的合适网站。
答案2
从http://docs.oracle.com/javase/1.5.0/docs/tooldocs/windows/java.html:
-jar
When you use this option, the JAR file is the source
of all user classes, and other user class path settings
are ignored.