在linux中运行带有外部jar的java文件

时间:2013-08-27 04:30:15

标签: java linux

如何在Linux中运行具有外部jar的java文件。还有如何在Windows中运行它?

我尝试了以下操作,但没有工作。

javac -cp c:/lib/lib1.jar;c:/lib/lib2.jar c:/com/example/Application.java

感谢

------ ------ EDITED

现在我的类文件在编译后生成,没有任何错误。但是,当我运行该文件时,它显示以下错误

java -cp C:/lib/lib1.jar; C:/lib/lib2.jar C:/ com / example / Application

Exception in thread "main" java.lang.NoClassDefFoundError: C:/com/example/Application
Caused by: java.lang.ClassNotFoundException: C:/com/example/Application
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)

任何建议......

3 个答案:

答案 0 :(得分:1)

如果你在linux上运行,那么windows应该有不同的目录结构。 linux上的类路径还应包含以冒号(:)而不是分号(;

分隔路径的路径

将你的jar放在linux机器上的一个目录中,可能在/ var / tmp / myjars中。然后使用以下命令编译代码:

javac -cp /var/tmp/myjars/lib1.jar;/var/tmp/myjars/lib2.jar Application.java

修改 当你更新了你的问题。您需要在Windows上运行您的课程,如此处所述。我在这里做了一些假设,你的Application类在com.example包中。如果是这种情况,那么您可以从包含com文件夹的文件夹中运行它,如下所述:

java -cp C:/lib/lib1.jar;C:/lib/lib2.jar com.example.Application

答案 1 :(得分:0)

javac是Java编译器。在编译程序之后,在Windows上运行应该像这样工作

java -cp c:/lib/lib1.jar;c:/lib/lib2.jar c:/com/example/Application

答案 2 :(得分:0)

你可以试试这个

java -cp classpath =%classpath%;< jar文件全路径&gt ;; ClassName

Ex:java -cp classpath =%classpath%; c:/lib/lib1.jar; c:/lib/lib2.jar com.ab.cd.MyClass