Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在linux中使用外部JAR运行java文件_Java_Linux - Fatal编程技术网

在linux中使用外部JAR运行java文件

在linux中使用外部JAR运行java文件,java,linux,Java,Linux,如何在Linux中运行具有外部JAR的java文件。如何在Windows中运行它 我尝试了以下方法,但没有成功 javac -cp c:/lib/lib1.jar;c:/lib/lib2.jar c:/com/example/Application.java 谢谢 ------编辑------ 现在我的类文件在编译后生成,没有任何错误。但当我运行该文件时,它显示以下错误 java-cpc:/lib/lib1.jar;C:/lib/lib2.jar C:/com/example/Applicat

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

我尝试了以下方法,但没有成功

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

------编辑------

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

java-cpc:/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)

任何建议…

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

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

javac -cp /var/tmp/myjars/lib1.jar;/var/tmp/myjars/lib2.jar Application.java
编辑 因为你已经更新了你的问题。您需要在这里提到的windows上运行类。我在这里假设您的应用程序类在com.example包中。如果是这种情况,则可以从包含com文件夹的文件夹中运行它,如下所述:

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

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

java -cp c:/lib/lib1.jar;c:/lib/lib2.jar c:/com/example/Application
你可以试试这个

java-cp类路径=%classpath%;;类名


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

Linux没有
c://
路径(上次我检查时),路径分隔符不是
她在问如何在Windows上运行她在问这两个问题。答案是:检查在每个系统上写入路径的正确方法使用上述命令在Windows上会出现什么错误?@MadProgrammer:我在Windows上尝试过,但在运行文件时遇到错误。请查看我在实际文档中编辑的部分post@user2670291更新了我的答案,同样没有什么假设;-)