Как добавлять / ссылаться на файлы .jar в вашем проекте, когда у вас нет IDE

Я новичок в Java (в основном разработчик LAMP). Я получил этот JAVA API для анализа .pst файлов и отображения всех входящих сообщений.

Я попытался запустить указанный .class файл, но он выдает исключения. Мне нужно добавить / сослаться на некоторые .jar файлы, предоставленные API.

У меня еще нет IDE для Java. Wikihow говорит

Если вашему проекту Java требуются библиотеки JAR для работы, вам необходимо настроить проект так, чтобы библиотеки были включены в его путь сборки. К счастью, Eclipse упрощает этот процесс и позволяет легко его запомнить. Здесь используется сборка Eclipse Java - Ganymede 3.4.0.

Итак, какую конфигурацию мне нужно сделать? Или лучше получить Eclipse IDE? Мне нужно выполнить только один .class файл.

Еще несколько вопросов, которые я проверил, но не смог получить ответа - Как добавить внешние библиотеки jar в проект Android из командной строки

Как мне включить внешние JAR-файлы в мой собственный проект JAR


person Sandeepan Nath    schedule 19.01.2011    source источник
comment
Вам действительно стоит использовать Eclipse или Netbeans для программирования. IDE на Java действительно хороши по сравнению с тем, что у вас есть для PHP!   -  person Alfred    schedule 19.01.2011


Ответы (2)


Вы должны поместить их в свой путь к классам, например

java -classpath someJar.jar YourMainClass

И, конечно, вы можете сделать то же самое для javac.

Если вам нужно иметь более одного jar-файла или каталога в пути к классам, вам нужно будет использовать значение по умолчанию для вашей платформы разделитель пути. Например, в Windows

java -classpath someJar.jar;myJar.jar YourMainClass

Кстати, вам может быть проще использовать IDE для управления подобными вещами. Лично я использовал только мой слегка изменяемый скрипт редактор, и у меня все получилось. Но хорошо знать, как это делать из командной строки.

person Zach L    schedule 19.01.2011
comment
И убедитесь, что вы используете полное имя класса. Скорее всего, ваш основной класс больше похож на com.myco.bubu.YourMainClass - person Jochen Bedersdorfer; 19.01.2011
comment
Спасибо за ответ Зак Л. Я все еще не могу запустить файл .class. По мнению специалистов по API, нужно сослаться только на один .jar файл. Даже после добавления classpath в команды компиляции и выполнения я получаю исключение в команде выполнения - Exception in thread "main" java.lang.NoClassDefFoundError: /opt/Java/libs/JPST/examples/GetInboxMessages/bin/Example Caused by: java.lang.ClassNotFoundException: .opt.Java.libs.JPST.examples.GetInboxMessages.bin.Example .... Есть указатели? Команда компиляции отлично работает, создавая файл .class - person Sandeepan Nath; 19.01.2011
comment
Я знаю, что трудно ответить на этот вопрос, не глядя на код, но мне нужно только убедиться, что я правильно добавил / сделал ссылку на зависимости .jar. Я сделал javac -classpath /opt/Java/libs/JPST/lib/jpst.jar;/opt/Java/libs/JPST/lib/mail.jar /opt/Java/libs/JPST/examples/GetInboxMessages/src/Example.java, а затем java -classpath /opt/Java/libs/JPST/lib/jpst.jar /opt/Java/libs/JPST/examples/GetInboxMessages/bin/Example. Если это правильно, проблема, вероятно, в другом. - person Sandeepan Nath; 19.01.2011
comment
Я не уверен, но последняя ли часть - это имя класса? Необязательно ставить перед классом весь путь. Вы просто указываете имя пакета, которому он принадлежит (как говорит Йохен), например `java -classpath /opt/.../jpst.jar nameofpackage.Пример - person Zach L; 19.01.2011
comment
это не решило мою проблему. У меня есть только один файл .JAR, на который мне нужно сослаться, хотя ошибка ссылки сохраняется ... Странно, что компиляция вообще не приводит к ошибке, выполнение дает ошибку ссылки. В принципе, у меня та же проблема, что и у @SandeepanNath - person Michael Trouw; 14.05.2013

javac -cp yourjar.jar YourClass.java

&

java -cp yourjar.jar YourClass

Вам нужно сделать всю необходимую банку доступной в пути к классам, вот как вы можете это сделать

person jmj    schedule 19.01.2011
comment
life.java: +1. Я все еще не могу выполнить файл .class. По мнению специалистов по API, нужно сослаться только на один .jar файл. Даже после добавления classpath к командам компиляции и выполнения (как вы сказали) я получаю исключение типа Exception in thread "main" java.lang.NoClassDefFoundError: /opt/Java/libs/JPST/examples/GetInboxMessages/bin/Example Caused by: java.lang.ClassNotFoundException: .opt.Java.libs.JPST.examples.GetInboxMessages.bin.Example .... Есть указатели? - person Sandeepan Nath; 19.01.2011
comment
Я знаю, что трудно ответить на этот вопрос, не глядя на код, но мне нужно только убедиться, что я правильно добавил / сделал ссылку на зависимости .jar. Я сделал javac -classpath /opt/Java/libs/JPST/lib/jpst.jar;/opt/Java/libs/JPST/lib/mail.jar /opt/Java/libs/JPST/examples/GetInboxMessages/src/Example.java, а затем java -classpath /opt/Java/libs/JPST/lib/jpst.jar /opt/Java/libs/JPST/examples/GetInboxMessages/bin/Example. Если это правильно, проблема, вероятно, в другом. - person Sandeepan Nath; 19.01.2011