3つのjarファイルと、これらのjarファイルに依存する.javaファイルがあります。コマンドプロンプトを使用してこれらのjarファイルで.javaファイルをコンパイルするにはどうすればよいですか?
java -cp ".;magic.jar" Foo
大丈夫でjava Foo -cp ".;magic.jar"
はありません。
3つのjarファイルと、これらのjarファイルに依存する.javaファイルがあります。コマンドプロンプトを使用してこれらのjarファイルで.javaファイルをコンパイルするにはどうすればよいですか?
java -cp ".;magic.jar" Foo
大丈夫でjava Foo -cp ".;magic.jar"
はありません。
回答:
「-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
javac -classpath ".:/home/path/mail.jar;/home/path/servlet.jar" MyJavaFile.java
私のために働いた。Macを使っていました。「:」がUNIXに使用されていることをどこかで読みました。
.:
ますか?馬鹿げた質問なら申し訳ありませんが、私には自明ではありません。
javac -cp .:/home/path/mail.jar:/home/path/servlet.jar; MyJavaFile.java
Linuxでお試しください
javac -cp jarfile source file
例:-
javac -cp .:/jars/* com/template/*.java
.:/jars
私のJARファイルが置かれているディレクトリに置き換え、私はエラーメッセージが表示されますjavac: invalid flag: /location/of/first/jar/file.jar
。
構文はWindowsのdosコマンドで機能します。
javac -cp ".;first.jar;second.jar;third.jar" MyJavaFile.java
環境変数の設定を通じてすべての依存関係jarファイルをクラスパスに追加するか、以下の手順を使用してください。
以下に示すように、依存関係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;
これで、javaファイルをコンパイルできます。(コマンド:javac YourJavaFile.java
)
これが依存関係の問題を解決することを願っています。
以下はステップです、
すべてのjarファイルと.javaファイルを同じフォルダーにコピーします(長いパスを指定する代わりにファイル名を指定するのは簡単です。jarと.javaを別々のフォルダーに保持することもできます)。
コンパイルする、
javac -cp .:<file_1_name>.jar:<file_2_name>.jar <prog_name>.java
実行するには、
java -cp .:<file_1_name>.jar:<file_2_name>.jar <prog_name>
これが役に立てば幸いです!
これにより、.classファイルが作成されます。
javac -classpath "[jarname with specified path]" [java filename]
これはクラスファイルを実行します:
java -cp [jarname with specified path]: [java filename]
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
コンパイル時とランタイムで依存関係を指定する必要があります
コンパイルするには、この形式を使用します
javac -cp "*.jar;classfile_path" filename.java
例:
javac -cp "ojdbc6.jar;c:\programs" Main.java
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
注:ファイルの場所とパッケージ名を確認してください