小编典典

从命令行运行时将jar添加到类路径

java

好的,我知道这个问题以前已经被问过很多次了,但是我已经搜索了一下,查看了示例,并查看了过去一个月中关于SO的问题,我真的无法解决这个问题。我认为问题是我希望能够从Eclipse和命令行运行该程序。我也在使用OSX,我认为我正在阅读的许多示例都是针对Windows
/ Linux的。

如果我有一个要在命令行中运行的,在Eclipse中编译的简单程序,请执行以下操作:

java -cp bin MyProgram

我有另一个程序在Eclipse中编译并运行,该程序引用了存储在同一目录中的MySQL JDBC连接器(mysql-connector-
java-5.1.19-bin.jar)。从Eclipse可以正常工作,但是我不能从命令行运行它。

我已经尝试了所有事物的组合…

java -classpath "bin;mysql-connector-java-5.1.19-bin.jar" MyProgram
java -cp bin\;mysql-connector-java-5.1.19-bin.jar MyProgram

并得到各种类未找到的错误…

Exception in thread "main" java.lang.NoClassDefFoundError: MyProgram
Caused by: java.lang.ClassNotFoundException: MyProgram
    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:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

阅读 182

收藏
2020-11-16

共1个答案

小编典典

您的问题是您正在使用的最小分隔符。分隔符;用于Windows。在Unix系统上,您应该:改用:

java -classpath“ bin:mysql-connector-java-5.1.19-bin.jar” MyProgram

2020-11-16