我整理了一个JAR http://en.wikipedia.org/wiki/JAR_%28file_format%29文件并在清单中指定了主类(我使用了 EclipseExport功能)。我的依赖项都在标记为的目录中lib
。我似乎无法得到关于如何执行 JAR 文件的直接答案,同时指定它应该使用lib/*
作为类路径。
我试过了:
]$ java -jar -cp .:lib/* MyJar.jar
]$ java -cp .:lib/* -jar MyJar.jar
]$ java -cp .:lib/* com.somepackage.subpackage.Main
etc...
每个都会给出一个错误:
Error: Could not find or load main class ....
或给出NoClassDefFoundError
表明未找到库。
我什至尝试重新制作 JAR 文件并包含lib
目录和内容,但仍然没有骰子......
如何从命令行执行 JAR 文件并指定要使用的类路径?
当您指定-jar
那么-cp
参数将被忽略。
From 文档 http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/java.html#jar:
当您使用此选项时,JAR 文件是所有用户类的源,并且其他用户类路径设置将被忽略。
您也不能将所需的 jar 文件“包含”到另一个 jar 文件中(您需要提取它们的内容并将 .class 文件放入您的 jar 文件中)
您有两个选择:
- 包括来自的所有 jar 文件
lib
目录到清单中(您可以在那里使用相对路径)
- 指定所有内容 (包括你的jar)在命令行上使用
-cp
:
java -cp MyJar.jar:lib/* com.somepackage.subpackage.Main
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)