.jarファイルのクラスを使用する方法


134

JARファイルについてSunで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を使用しています。


13
なぜ反対票があるのですか?私の意見では、それは良い質問であり、回答には興味深い情報があります。(+1)
ゲルダ

回答:


34

すべてのjarファイルが実行可能であるとは限りません。

次に、jarの下にあるクラスをJavaファイルにインポートする必要があります。例えば、

import org.xml.sax.SAXException;

IDEで作業している場合は、そのドキュメントを参照してください。または、少なくともこのスレッドでここで使用しているものを指定します。それは間違いなく私たちがあなたをさらに助けることを可能にします。

IDEを使用していない場合は、javac -cpオプションを確認してください。ただし、プログラムをjarファイルにパッケージ化し、その中に必要なをすべて含めることをお勧めしますjar。次に、を実行するためにjar

java -jar my_program.jar

META-INF/MANIFEST.MFファイルが必要ですjar。ハウツーについてこちらをご覧ください。


古い、私は知っているが、実際にはimport何も必要はありません-それは、クラスが使用される完全修飾クラス名を記述する必要をSAXException
なくし

173

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
  • ウィンドウの下にいる場合:

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

この後、バイトコードファイルを取得します mysource.class

これを実行できます:

  • UNIXのようなオペレーティングシステムを使用している場合:

    java -cp '.:org.example.jar' mysource
  • ウィンドウの下にいる場合:

    java -cp .;org.example.jar mysource

4
この表記についてもう少し説明してもらえますか?これで私の問題は解決しましたが、残念ながら、この特定の場合のセミコロン/コロンの意味はわかりません。
2012

2
このセミコロン/コロンの話は、丸一日かかりました。少なくとも私はそれを今見つけました、ありがとう!
Maxim Zubarev 2013年

1
@ChaseMeadors セミコロン / コロンは、基本的にここでは「and」を意味します。.から分離していorg.example.jarます。
duozmo 2014年

あなたのしているスキミング場合は、ほとんど区別に耳を傾け*PATH、変数:.jarファイルを個別に命名する必要があります
duozmo 2014年

15

クラスパスにjarファイルを追加する必要があります。Javaクラスをコンパイルするには:

javac -cp .;jwitter.jar MyClass.java

コードを実行するには(MyClassにmainメソッドが含まれている場合):

java -cp .;jwitter.jar MyClass

jarファイルはどこにでも置くことができます。上記は、jarファイルがjavaファイルと同じディレクトリにある場合に機能します。


7

コードをコンパイル/実行するときは、.jarファイルをクラスパスに配置する必要があります。次に、.jar内のクラスの標準インポートを使用します。


6

workmad3が言うように、jarファイルがクラスパスにある必要があります。コマンドラインからコンパイルする場合は、-classpathフラグを使用することになります。(CLASSPATH環境変数は避けてください。これは首のIMOの痛みです。)

IDEを使用している場合は、どのIDEかをお知らせください。そのIDEに固有の手順をサポートします。


classpath env変数は、スクリプトまたはfiredaemonなどを使用してアプリを実行している場合に役立ちます。それをグローバルに使用するときだけの痛みです:)
workmad3

私はまだそれを明示的に見るのが好きです。
Jon Skeet、

私は同意します、私はそれを明示的に見るのが好きです。
J3r3myK 2009年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.