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

我阅读了关于 Sun 的 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。

289003 次浏览

你需要把。在编译/运行代码时,将 jar 文件放到类路径中。中的类的标准导入。罐子。

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

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

import org.xml.sax.SAXException;

如果您正在使用 IDE,那么您应该参考它的文档。或者至少指定在这个线程中使用哪一个。这绝对能让我们进一步帮助你。

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

java -jar my_program.jar

你应该在你的 jar中有一个 META-INF/MANIFEST.MF文件。

正如 workmad3所说,您需要将 jar 文件放在类路径中。如果您从命令行编译,那将意味着使用-classspath 标志。(避免使用 CLASSPATH 环境变量,因为它是我们脖子上的一个痛处。)

如果您正在使用 IDE,请让我们知道是哪一个,我们可以帮助您完成特定于该 IDE 的步骤。

您需要在类路径中添加 jar 文件:

javac -cp .;jwitter.jar MyClass.java

运行代码(前提是 MyClass 包含一个 main 方法) :

java -cp .;jwitter.jar MyClass

您可以在任何地方使用 jar 文件。如果 jar 文件和 java 文件在同一个目录中,那么上面的方法就可以工作。

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

你的消息来源在 mysource.java文件里,像这样:

import org.example.Classname;


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

首先,如您所见,在代码中您必须导入这些类

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

请注意在编译时使用 :;的区别

  • 如果你使用的是 Unix 之类的操作系统:

    javac -cp '.:org.example.jar' mysource.java
    
  • If you are under windows:

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

After this, you obtain the bytecode file mysource.class

Now you can run this :

  • If you are under a unix like operating system:

    java -cp '.:org.example.jar' mysource
    
  • If you are under windows:

    java -cp .;org.example.jar mysource