Lif*_*des 7 java command-line jar classpath noclassdeffounderror
我有一个外部jar文件(有包结构),它包含主类,我可以从命令行运行应用程序,如下所示:
java -jar example.jar
Run Code Online (Sandbox Code Playgroud)
但是我仍然test.class在这个jar文件之外有另一个文件,这个jar文件中的一些类将调用这些方法test.class.如何test.class在命令行中指定jar文件使用的文件?试过很多方法,总是表现出来:
NoClassDefFoundError for test.class
Run Code Online (Sandbox Code Playgroud)
注意:test.class文件也使用example.jar文件中的类文件,有自己的包结构.
我知道我可以把它们放在一个jar文件中,不幸的是我需要单独的test.class文件.
Aub*_*bin 11
如果类在bin目录中:
java -cp xxx.jar;bin pck1.pck2.MainClass
Run Code Online (Sandbox Code Playgroud)
如果该类位于当前目录中:
java -cp xxx.jar;. pck1.pck2.MainClass
Run Code Online (Sandbox Code Playgroud)
等等...
手册中的更多信息,请至少阅读一次... ;-)
在 Linux 系统中
编译和运行 Java 程序以及外部 JAR。
javac -cp </path/jar1>:<path/jar2>:<path/jar3> MainClass.java
Run Code Online (Sandbox Code Playgroud)
如果编译器抛出弃用警告。您可以使用-Xlint:deprecation参数重新编译。
javac -Xlint:deprecation -cp </path/jar1>:<path/jar2>:<path/jar3> MainClass.java
Run Code Online (Sandbox Code Playgroud)
最后,运行 Java 程序:
java -cp </path/jar1>:<path/jar2>:<path/jar3>:. MainClass
Run Code Online (Sandbox Code Playgroud)
如果您想在后台运行 Java Process。您可以使用nohup。
nohup java -cp </path/jar1>:<path/jar2>:<path/jar3>:. MainClass &
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44812 次 |
| 最近记录: |