好的,我知道这个问题以前已经被问过很多次了,但是我已经搜索了一下,查看了示例,并查看了过去一个月中关于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)
您的问题是您正在使用的最小分隔符。分隔符;用于Windows。在Unix系统上,您应该:改用:
;
:
java -classpath“ bin:mysql-connector-java-5.1.19-bin.jar” MyProgram