始めにhoge.jarというファイルがあってjavaファイル内で
java
1import hoge.hogehoge.*; 2 3Hoge a;
のように独自のクラスを利用したいです。
$ javac -cp .:hoge.jar prog1.java $ java -cp .:hoge.jar prog1
macではこのようにhoge.jarがあるディレクトリでprog1.javaをコンパイル実行できるのですが、
以下のように
hai - 1 - prog1.java
| - 2 - prog2.java
| - 3 - prog3.java
| - hoge.jar
(hai, 1, 2, 3はフォルダ)
とディレクトリ構造があったばあい
ディレクトリhaiにいながらprog1.javaやprog2.javaのコンパイル実行をやりたいです。
$ javac -cp .:hoge.jar 1/prog1.java
このようにコンパイルしディレクトリ1にprog1.classを作成し
$ java -cp .:hoge.jar -classpath 1/ prog1
のように実行したのですが
Exception in thread "main" java.lang.NoClassDefFoundError: hoge/~~
のようなエラーが出てしまいます。
やはり素直にディレクトリ1, 2, 3すべてにhoge.jarをコピーして実行は全てそのディレクトリ内でやるしかないんでしょうか
また新たにhai内にtestというディレクトリを作成し
javac -cp .:hoge.jar -d test 1/prog1.java
としprog1.classをtest下に配置し
そのtestにhoge.jarをコピーしました。
つまり
hai
|
test-hoge.jar prog1.class
のようにして
java -cp .:hoge.jar -classpath test/ prog1
実行しても同じような結果になってしまいました。
どのようにすればいいでしょうか
回答1件
あなたの回答
tips
プレビュー