-2

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

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

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

谢谢

------已编辑------

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

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)

任何建议...

4

3 回答 3

1

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

将你的 jars 放在 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
于 2013-08-27T04:35:39.900 回答
0

你可以试试这个

java -cp classpath=%classpath%;<jar-file full-path>; 班级名称

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

于 2013-08-27T08:03:12.183 回答
0

javac是Java编译器。编译程序后,windows上的运行应该是这样的

java -cp c:/lib/lib1.jar;c:/lib/lib2.jar c:/com/example/Application
于 2013-08-27T04:41:08.670 回答