在命令行中运行Java应用程序与外部JAR文件(Run java application from

2019-08-03 09:34发布

我有一个外部的jar文件(具有封装结构),其中包含在主类,我可以运行这样的命令行该应用:

java -jar example.jar

但我仍然有其他test.class这个jar文件以外的文件,这个jar文件里面的一些类将调用的方法test.class 。 我如何指定test.class在命令行中使用的jar文件的文件? 尝试过很多办法,总是显示:

NoClassDefFoundError for test.class

注:该文件的Test.class也使用example.jar文件类文件,有它自己的包结构。

我知道我可以把它们放在一起在一个jar文件,不幸的是我需要分开的Test.class文件。

Answer 1:

如果类是在bin目录:

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

如果类是在当前目录:

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

等等...

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



Answer 2:

在Linux的系统

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

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

如果编译器会引发弃用警告。 你可以用-Xlint重新编译:弃用的说法。

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 &


Answer 3:

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

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

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


文章来源: Run java application from command line with external jar files