11

我有一个包含主类的外部 jar 文件(具有包结构),我可以像这样从命令行运行应用程序:

java -jar example.jar

但是我在这个 jar 文件之外还有另一个test.class文件,并且这个 jar 文件中的一些类会调用test.class. 如何test.class在命令行中指定 jar 文件要使用的文件?尝试了很多方法,总是显示:

NoClassDefFoundError for test.class

注意:test.class 文件也使用 example.jar 文件中的类文件,有自己的包结构。

我知道我可以将它们放在一个 jar 文件中,不幸的是我需要单独的 test.class 文件。

4

3 回答 3

15

如果该类在 bin 目录中:

java -cp xxx.jar;bin pck1.pck2.MainClass

如果该类在当前目录中:

java -cp xxx.jar;. pck1.pck2.MainClass

等等...

手册中的更多信息,请至少阅读一次... ;-)

于 2012-12-01T08:45:09.447 回答
8

在 Linux 系统中

与外部 JAR 一起编译和运行 Java 程序。

javac -cp </path/jar1>:<path/jar2>:<path/jar3> MainClass.java

如果编译器抛出弃用警告。您可以使用-Xlint:deprecation参数重新编译。

javac -Xlint:deprecation -cp </path/jar1>:<path/jar2>:<path/jar3> MainClass.java

最后,运行 Java 程序:

java -cp </path/jar1>:<path/jar2>:<path/jar3>:. MainClass

如果要在后台运行 Java 进程。您可以使用nohup

nohup java -cp </path/jar1>:<path/jar2>:<path/jar3>:. MainClass &
于 2016-05-24T11:00:07.633 回答
4

您可以使用以下命令运行 java 主类或 java jar 文件:

java -Djava.ext.dirs=E:\lib  E:\Executable\MyMainClass

java -Djava.ext.dirs=E:\lib  E:\Executable\purging.jar
于 2014-10-27T08:22:56.007 回答