Ответ 1
Ваша проблема в том, что вы используете min separator. Сепаратор ;
предназначен для окон. В системах Unix вы должны использовать :
вместо:
java -classpath "bin: mysql-connector-java-5.1.19-bin.jar" MyProgram
Хорошо, я знаю, что этот вопрос задавался много раз много раз, но я искал его и смотрел примеры и смотрел на вопросы о SO за последний месяц, и я серьезно не могу заставить это работать. Я думаю, проблема в том, что я хочу иметь возможность запускать программу как из Eclipse, так и из командной строки. Я также использую OSX, и я думаю, что многие примеры, которые я читаю, предназначены для Windows/Linux.
Если у меня есть простая программа, скомпилированная в Eclipse, которую я хочу запустить из командной строки, я делаю это:
java -cp bin MyProgram
У меня есть другая программа, которую я компилирую и запускаю в Eclipse, и это ссылается на соединитель JDBC MySQL (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)
Ваша проблема в том, что вы используете min separator. Сепаратор ;
предназначен для окон. В системах Unix вы должны использовать :
вместо:
java -classpath "bin: mysql-connector-java-5.1.19-bin.jar" MyProgram
Используйте ":" для разделения записей в системах Unix:
java -classpath "bin:mysql-connector-java-5.1.19-bin.jar" MyProgram
java -cp bin:mysql-connector-java-5.1.19-bin.jar MyProgram
Eclipse автоматически преобразует его.
Смотрите:
String pathSeparator = System.getProperty("path.separator");
вы не установили свой основной класс в classpaht, попробуйте добавить ./
в -cp
Я бы предложил вам попробовать --jar или -jar. Я не могу вспомнить, что это такое, но это должно уладить вас. Кроме того, если у вас есть инструменты dev из apple, у них есть упаковщик jar.