如何使用.jar文件中的类?

问题

我阅读了Sun for JAR文件的Java教程,但我仍然无法找到解决问题的方法。我需要使用一个名为jtwitter.jar的jar文件中的类,我下载了该文件,然后尝试执行它(我昨天发现.jar文件可以通过双击来执行)并且Vista给了我一个错误说"无法从[path] /jtwitter.jar"加载Main-Class Manifest属性"。

编码.jar文件的人要我导入它,但是我在哪里存储.jar文件以在我的代码中导入它?我尝试将.jar文件和我的.java文件放在同一目录中,但是没有用。

我正在努力的文件是:http://www.winterwell.com/software/jtwitter.php

我正在使用JCreator LE。


#1 热门回答(145 赞)

假设我们需要使用jar文件org.example.jar中包含的classClassname

你的源代码在文件mysource.java中,如下所示:

import org.example.Classname;

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

首先,如你所见,在你的代码中,你必须导入类。要做到这一点,你需要import org.example.Classname;

其次,在编译源代码时,必须引用jar文件。

请注意编译时使用3161833873和;的区别

  • 如果你使用的是类似操作系统的unix:javac -cp'。:org.example.jar'mysource.java
  • 如果你在windows下:javac -cp .; org.example.jar mysource.java

在此之后,你将获得字节码文件mysource.class

现在你可以运行这个:

  • 如果你使用的是类似操作系统的unix:java -cp'。:org.example.jar'mysource
  • 如果你在windows下:java -cp .; org.example.jar mysource

#2 热门回答(26 赞)

并非每个jar文件都是可执行的。

现在,你需要在java文件中导入jar下的类。例如,

import org.xml.sax.SAXException;

如果你正在使用IDE,那么你应该参考其文档。或者至少在这个帖子中指定你在这里使用的那个。它肯定会使我们能够进一步帮助你。

如果你没有使用任何IDE,请查看javac -cp选项。但是,最好将程序打包到ajar文件中,并在其中包含所有必需的jar。然后,为了执行你的jar,像,

java -jar my_program.jar

你的jar应该有一个META-INF/MANIFEST.MF文件。有关操作方法,请参见here


#3 热门回答(10 赞)

你需要在类路径中添加jar文件。要编译你的java类:

javac -cp .;jwitter.jar MyClass.java

要运行代码(假设MyClass包含main方法):

java -cp .;jwitter.jar MyClass

你可以在任何地方使用jar文件。如果jar文件与java文件位于同一目录中,则上述工作。