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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (19)

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

编码.jar文件的人希望我导入它,但是我在哪里存储.jar文件以将其导入到我的代码中?我试图把.jar文件和我的.java文件放在同一个目录下,但没有奏效。

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

我正在使用JCreator LE。

提问于
用户回答回答于

并非每个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

用户回答回答于

假设我们需要使用Classnamejar文件中包含的类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

扫码关注云+社区