拡張しようとしているクラスの外部 .jar ファイルを javac に認識させることができません。同じディレクトリに 2 つのファイル (TestConsole.java と acm.jar) があります。次のコマンドを使用して、同じディレクトリからコンパイルしています。
javac -classpath .:acm.jar TestConsole.java
しかし、javac は acm.jar を無視しているようです。次のエラーが発生します:
TestConsole.java:1: package acm does not exist
import acm.program;
^
もちろん、acm.program は acm.jar 内のパッケージです。acm.jar 内のすべてのクラスはすでにコンパイルされています。私はそれらをコンパイルするのではなく、クラス内で使用したいだけです。
何が間違っているのでしょうか?
私はこれを Mac 上で実行していますが、acm.jar のディレクトリ構造は有効であるように見えます。これには、拡張する唯一のクラスacm/program
である を含むディレクトリが含まれています。ConsoleProgram.class
TestConsole
javac -classpath ".:acm.jar" TestConsole.java
も動作しません。
ベストアンサー1
javac -cp <jar you want to include>;<jar you want to include> <source.java>
<jar you want to include>
同じディレクトリにある場合は、jarの名前だけで十分です。そうでない場合は、フルパスまたは相対パスを指定します。
複数の瓶がある場合は、,
;
に置き換える:
unix
可能であれば、Eclipse などの IDE を使用してください。私は以前、同様のことに多くの時間を費やしていましたが、業界では、このようなやり方で行うことはほとんどありません。