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

时间:2009-01-20 07:33:41

标签: java 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。

5 个答案:

答案 0 :(得分:158)

假设我们需要使用jar文件Classname中包含的类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
    
  • 如果您在Windows下:

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

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

现在你可以运行:

  • 如果您使用的是类似操作系统的unix:

    java -cp '.:org.example.jar' mysource
    
  • 如果您在Windows下:

    java -cp .;org.example.jar mysource
    

答案 1 :(得分:28)

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

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

import org.xml.sax.SAXException;

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

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

java -jar my_program.jar

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

答案 2 :(得分:11)

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

javac -cp .;jwitter.jar MyClass.java

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

java -cp .;jwitter.jar MyClass

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

答案 3 :(得分:6)

正如workmad3所说,你需要jar文件在你的类路径中。如果您正在从命令行进行编译,那将意味着使用-classpath标志。 (避免使用CLASSPATH环境变量;这是颈部IMO的痛苦。)

如果您使用的是IDE,请告诉我们哪一个,我们可以帮助您完成该IDE的特定步骤。

答案 4 :(得分:5)

编译/运行代码时,需要将.jar文件放入类路径中。然后,您只需使用.jar中的类的标准导入。