JARファイルをJavaファイルに組み込み、コマンドプロンプトでコンパイルする方法


121

3つのjarファイルと、これらのjarファイルに依存する.javaファイルがあります。コマンドプロンプトを使用してこれらのjarファイルで.javaファイルをコンパイルするにはどうすればよいですか?


9
「javac -help」と入力
ショーンパトリックフロイド


2
願っています、これはあなた..役立ちます
Fahimパーカー

2
自己注意:実行するJavaファイルの名前の前に-cp / -classpathフラグを使用する必要があります。そうしないと、フラグは無視されます。java -cp ".;magic.jar" Foo大丈夫でjava Foo -cp ".;magic.jar"はありません。
Dmitry

回答:


108

「-cp」オプションを使用して、jarファイルを「javac」コマンドに含めることができます。

javac -cp ".:/home/path/mail.jar:/home/path/servlet.jar;" MyJavaFile.java

「-cp」の代わりに「-classpath」を使用することもできます

javac -classpath ".:/home/path/mail.jar:/home/path/servlet.jar:" MyJavaFile.java

環境変数 "CLASSPATH"を正しく設定することで、コンパイルするたびにjarを含めることができます。環境変数は、Javaファイルのコンパイル/実行に使用する必要があるjarおよびクラスのパスを格納します。ファイルをコンパイルするたびに、jarファイルを個別に含める必要はありません。

マシンごとに、クラスパスを環境変数として設定する方法が異なります。Windows、Linuxなどのコマンドは異なります。

詳細については、このブログをご覧ください。

http://javarevisited.blogspot.com/2011/01/how-classpath-work-in-java.html

7
javac -classpath ".:/home/path/mail.jar;/home/path/servlet.jar" MyJavaFile.java私のために働いた。Macを使っていました。「:」がUNIXに使用されていることをどこかで読みました。
2016年

2
このコマンドを使用しましたが、jarファイルにあるクラスにアクセスしようとすると、ClassNotFoundExceptionが発生します。
モハメッドランプラワラ2016年

3
何をし.:ますか?馬鹿げた質問なら申し訳ありませんが、私には自明ではありません。
ミランダ

1
@kensen。タイプミス。:(コロン)をセミコロン(;)に置き換えます
Pankaj Shinde

上記は私にとってubuntuでは機能しませんでした。引用符なしで試してみましたが、うまくいきました。例 javac -cp .:/home/path/mail.jar:/home/path/servlet.jar; MyJavaFile.java
Alfaz Jikani

24

Linuxでお試しください

javac -cp jarfile source file 

例:-

javac  -cp .:/jars/* com/template/*.java

私がしようとする例: - 、と.:/jars私のJARファイルが置かれているディレクトリに置き換え、私はエラーメッセージが表示されますjavac: invalid flag: /location/of/first/jar/file.jar
Arturo don Juan

stackoverflow.com/questions/27915204/…これを参照してください。問題が解決する可能性があります
Jamsheer

20

構文はWindowsのdosコマンドで機能します。

javac -cp ".;first.jar;second.jar;third.jar" MyJavaFile.java

4
上記のコマンドが正常に実行された後、Javaクラスファイルを実行する方法は?
Yash Agrawal 2017年

java -cp first.jar:second.jar:third.jar MyFile
Krsna Chaitanya

15

環境変数の設定を通じてすべての依存関係jarファイルをクラスパスに追加するか、以下の手順を使用してください。

  1. コマンドプロンプトを開きます。
  2. コンパイルするJavaファイルの場所にディレクトリを変更します。
  3. 以下に示すように、依存関係jarファイルのクラスパスを設定します。

    set classpath=C:\Users\sarath_sivan\Desktop\jars\servlet-api.jar; C:\Users\sarath_sivan\Desktop\jars\spring-jdbc-3.0.2.RELEASE; C:\Users\sarath_sivan\Desktop\jars\spring-aop-3.0.2.RELEASE;

  4. これで、javaファイルをコンパイルできます。(コマンド:javac YourJavaFile.java

これが依存関係の問題を解決することを願っています。


15

以下はステップです、

  1. すべてのjarファイルと.javaファイルを同じフォルダーにコピーします(長いパスを指定する代わりにファイル名を指定するのは簡単です。jarと.javaを別々のフォルダーに保持することもできます)。

  2. コンパイルする、

    javac -cp .:<file_1_name>.jar:<file_2_name>.jar <prog_name>.java
  3. 実行するには、

    java -cp .:<file_1_name>.jar:<file_2_name>.jar <prog_name>

これが役に立てば幸いです!


1
実行方法も示していただきありがとうございます。ドットコロンは再び何をしますか?現在のディレクトリとファイル区切りですか?
ThisClark

はい、それは現在のディレクトリとUnixファイルの区切り文字です(Windowsではセミコロンです)。
MathuSum Mut

6

これにより、.classファイルが作成されます。

javac -classpath "[jarname with specified path]" [java filename]

これはクラスファイルを実行します:

java -cp [jarname with specified path]: [java filename]

1
javaコマンドがエラーを表示する原因:java.lang.ClassNotFoundException:org.slf4j.LoggerFactory コンパイルしjavac -classpath "/home/scorncer/Downloads/spark-core-2.3.jar" MyFile.java たい** および**実行java -cp /home/scorncer/Downloads/spark-core-2.3.jar: MyFile.java also i tried java -cp /home/scorncer/Downloads/spark-core-2.3.jar: MyFile
Yash Agrawal


2

コンパイル時とランタイムで依存関係を指定する必要があります

コンパイルするには、この形式を使用します

javac -cp "*.jar;classfile_path" filename.java

例:

javac -cp "ojdbc6.jar;c:\programs" Main.java

この答えは正しいですが、他の答えがまだ言っていないことを実際に追加するようには見えません。この回答と他の回答の間に重要な違いがある場合は、回答が異なる理由を説明することをお勧めします。
DaveyDaveDave

コンパイル時と同様に実行時に依存関係を指定することについて述べましたが、実行時に依存関係を指定する方法については説明していません。
マイケルフルトン

1

時々、以下の変更作業を行います:

java -cp ".;%CLASSPATH%" classfilename 

注:Windowsの場合。Linuxの場合は、$CLASSPATH代わりに使用してください。


1
javac -cp jars/jar1:jars/jar2:jars/jar3 abc.java

5
このコードは問題を解決する可能性がありますが、これが問題を解決する方法と理由の説明含めると、投稿の品質が向上し、おそらく投票数が増えることになります。あなたが今尋ねている人だけでなく、あなたが将来の読者のための質問に答えていることを忘れないでください。回答を編集して説明を追加し、適用される制限と前提を示してください。
ダブルビープ

0

Ubuntuを使用している場合:

/opt/JavaServices/sqlite $ export CLASSPATH=/opt/JarFiles/XXXX.jar:/opt/JarFiles/XXXX.jar:/opt/JavaServices/;javac SQLiteSample.java

フォルダーの場所に移動(パッケージ構造外)

/opt/JavaServices $ export CLASSPATH=/opt/JarFiles/XXXXX.jar:/opt/JarFiles/XXXXX.jar:/opt/JavaServices/;java sqlite.SQLiteSample

注:ファイルの場所とパッケージ名を確認してください


-1

窓用

  1. コマンドプロンプトでJavaファイルが存在するディレクトリに接続します。
  2. クラスパスを設定(ここではd =フォルダー名)set classpath = C:\ d1 \ d2 \ d3 \ d4 \ d5 \ d6 \ d7.jar;
  3. Enterキーを押して
  4. 次に、javaファイルjavac filename.javaをコンパイルします。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.