我有一个外部的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文件。
如果类是在bin目录:
java -cp xxx.jar;bin pck1.pck2.MainClass
如果类是在当前目录:
java -cp xxx.jar;. pck1.pck2.MainClass
等等...
手册中的更多信息 ,请阅读它至少一次... ;-)
在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 &
您可以使用下面的命令来运行java主类或Java jar文件:
java -Djava.ext.dirs=E:\lib E:\Executable\MyMainClass
java -Djava.ext.dirs=E:\lib E:\Executable\purging.jar