繁体   English   中英

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

[英]How to use classes from .jar files?

我在 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。

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

您的源代码在文件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 

并非每个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文件。 有关如何操作,请参见此处

您需要将jar文件添加到类路径中。 编译Java类:

javac -cp .;jwitter.jar MyClass.java

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

java -cp .;jwitter.jar MyClass

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

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

正如workmad3所说,您需要将jar文件放在类路径中。 如果从命令行进行编译,则意味着使用-classpath标志。 (避免使用CLASSPATH环境变量;这会给IMO带来麻烦。)

如果您使用的是IDE,请告诉我们哪个IDE,我们可以为您提供特定于该IDE的步骤。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM