簡體   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