Как использовать классы из файлов .jar? - PullRequest
121 голосов
/ 20 января 2009

Я прочитал учебники по Java для Sun для файлов JAR, но все еще не могу найти решение для своей проблемы. Мне нужно использовать класс из файла jar с именем jtwitter.jar, я скачал файл и попытался его выполнить (вчера я узнал, что файлы .jar можно выполнить, дважды щелкнув по ним), и Vista выдавала мне сообщение об ошибке " Не удалось загрузить атрибут манифеста основного класса из [path] /jtwitter.jar ".

Парень, который кодировал файл .jar, хочет, чтобы я его импортировал, но где мне хранить файл .jar, чтобы импортировать его в мой код? Я попытался поместить и файл .jar, и мой файл .java в один каталог, не получилось.

Файл, для которого я пытаюсь работать, находится здесь: http://www.winterwell.com/software/jtwitter.php

Я использую JCreator LE.

Ответы [ 5 ]

159 голосов
/ 12 мая 2010

Допустим, нам нужно использовать класс Classname, который содержится в файле jar org.example.jar

И ваш источник находится в файле mysource.java Как это:

import org.example.Classname;

public class mysource {
    public static void main(String[] argv) {
    ......
   }
}

Во-первых, как вы видите, в вашем коде вы должны импортировать классы. Для этого вам нужно import org.example.Classname;

Во-вторых, когда вы компилируете исходный код, вы должны ссылаться на файл jar.

Обратите внимание на разницу в использовании : и ; при компиляции

  • Если вы работаете в Unix-подобной операционной системе:

    javac -cp '.:org.example.jar' mysource.java
    
  • Если вы находитесь под окнами:

    javac -cp .;org.example.jar mysource.java
    

После этого вы получите файл байт-кода mysource.class

Теперь вы можете запустить это:

  • Если вы работаете в Unix-подобной операционной системе:

    java -cp '.:org.example.jar' mysource
    
  • Если вы находитесь под Windows:

    java -cp .;org.example.jar mysource
    
28 голосов
/ 20 января 2009

Не каждый файл JAR является исполняемым.

Теперь вам нужно импортировать классы, которые находятся под jar, в вашем java-файле. Например,

import org.xml.sax.SAXException;

Если вы работаете с IDE, вам следует обратиться к ее документации. Или, по крайней мере, укажите, какой из них вы используете здесь, в этой теме. Это определенно позволило бы нам помочь вам в дальнейшем.

А если вы не используете какую-либо IDE, тогда посмотрите на javac -cp . Тем не менее, гораздо удобнее упаковать вашу программу в файл jar и включить в нее все необходимые jar s. Затем, чтобы выполнить ваш jar, например,

java -jar my_program.jar

у вас должен быть META-INF/MANIFEST.MF файл в вашем jar. См. здесь , для получения инструкций.

11 голосов
/ 20 января 2009

Вам необходимо добавить файл jar в путь к классам. Чтобы скомпилировать ваш класс Java:

javac -cp .;jwitter.jar MyClass.java

Для запуска вашего кода (при условии, что MyClass содержит метод main):

java -cp .;jwitter.jar MyClass

Файл jar можно хранить где угодно. Вышеуказанное работает, если файл JAR находится в том же каталоге, что и ваш файл Java.

6 голосов
/ 20 января 2009

Как говорит workmad3, файл jar должен находиться в вашем пути к классам. Если вы компилируете из командной строки, это будет означать использование флага -classpath. (Избегайте переменной среды CLASSPATH; это боль в шее, ИМО.)

Если вы используете IDE, сообщите нам, какой именно, и мы сможем помочь вам с действиями, специфичными для этой IDE.

5 голосов
/ 20 января 2009

Вам нужно поместить файл .jar в ваш путь к классу при компиляции / запуске вашего кода. Тогда вы просто используете стандартный импорт классов в .jar.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...