У меня снежный барс, и я только что написал класс Java по затмению. Проект eclipse ссылается на пользовательскую библиотеку, которая сама указывает на кучу jar-файлов, которые у меня есть где-то в системе. Когда я запускаю приложение через Eclipse, все идет гладко.
Затем я экспортирую класс в виде jar-файла и пытаюсь запустить его из терминала, набрав:
java - jar myApp.jar
Он генерирует исключение java.lang.NoClassDefFoundError, что означает, что он не может найти библиотеки, на которые я пытаюсь ссылаться.
Зная, что мои файлы jar пользовательской библиотеки находятся в / Users / myname / tempJars, я также попытался упомянуть путь к классу, используя опцию -cp
(java -cp /Users/myname/tempJars -jar myApp.jar)
или для прямой ссылки на него в файле манифеста. Обе попытки потерпели неудачу, и ошибка одинакова.
Эти библиотеки являются библиотеками Java 1.5, поэтому я подумал, что должен попытаться сослаться на другую версию Java с помощью переменной среды JAVA_HOME. Я построил следующий скрипт:
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.5/Home
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$CLASSPATH:/Users/myname/tempJars
java -jar myApp.jar
Опять, ничего хорошего. Я гуглил, как выполнять jar на снежном барсе, нашел 32/64 битное дело в некоторых местах и даже попытался выполнить с опцией -d32, но все равно безрезультатно.
Поскольку тот же код выполняется в Eclipse очень хорошо, я уверен, что это просто вопрос настройки JVM, чтобы он правильно включал пользовательские библиотеки.
Может ли кто-нибудь помочь мне с этим?
Заранее спасибо.