
実行可能なjarファイルを実行するさいに標準実行環境に含まれていない外部jarファイルが必要になる場合はどのようにその外部jarを指定するのでしょうか?
単純にCLASSPATHにそのjarのディレクトリかjarそのものを指定するだけだと思ったのですが、それだとNoClassDefFoundErrorが発生してしまいます。
実行前にコマンドプロンプト(WinXPです)でSETでやはりクラスパスに追加しても効果なしで…
EclipseでClassファイルからそのJARをビルドパスに含めて実行する場合はちゃんと実行できています。
また、実行JARファイルに外部JARの中身を一緒に入れてJARを生成するとちゃんと実行できます。
よろしくお願いします。
No.5ベストアンサー
- 回答日時:
どうやら、環境変数から変えるのは無理みたいですね。
JDKのドキュメントで, java -jarの説明を読むと、
「このオプションを使用すると、指定した JAR ファイルがすべてのユーザクラスのソースになり、ユーザクラスパスのほかの設定は無視されます。」(When you use this option, the JAR file is the source of all user classes, and other user class path settings are ignored.)
と書いてあるので、環境変数も -cpオプションも効かないのでは?
参考URL:http://java.sun.com/j2se/1.5.0/ja/docs/ja/tooldo …
そのようですね
・素直に一緒のjarにまとめる
・マニフェストに書く
・実行JREのextに入れる
しかないようですね
ありがとうございました
No.4
- 回答日時:
Sun のチュートリアルに、やり方が詳しく載ってました。
jarファイルをつくるときに、マニフェストファイルを設定するとうまくいきます。マニフェストファイルは単なるテキストファイルで、エントリポイントとクラスパスを記入します。以下の例では、mainパッケージ内のMain.classからdataパッケージのDataA.class, DataB.class等を利用することを考えます。カレントディレクトリにmainとdataのディレクトリがあるものとします。
例
1. dataパッケージからfoo.jarというjarファイルをつくる。
jar cvf foo.jar data/*.class
2. つぎにマニフェストファイルとして、以下のテキストファイルmanifest.txtを作成。
Main-Class: main.Main
Class-Path: foo.jar
最後は必ず改行を入れます。エンコーディングはUTF-8でないとうまくいかないらしいです。
3. mainパッケージからbar.jarというjarファイルを作成。
jar cvfm bar.jar manifest.txt main/*.class
4. 最後にbar.jarファイルを実行。
java -jar bar.jar
チュートリアルの中の特に、"Setting an Application's Entry Point", "Adding Classes to the JAR File's Classpath"の項目を読んでみてください。
参考URL:http://java.sun.com/docs/books/tutorial/deployme …
この回答への補足
ありがとうございます
しかしマニフェストを設定するのは前からできていました
マニフェストでClass-Pathを設定することなく環境設定の変更で対応したいのですが、その方法はありませんか?
ご存知でしたらお願いします

No.3
- 回答日時:
CLASSPATHを通す場合は . ←にも通さないと実行したクラスファイルのメインメソッドを探し当てられません。
これを入れればたぶんコンソールでも実行できると思います。
例
CLASSPATH = .;○○.jar

No.1
- 回答日時:
>実行前にコマンドプロンプト(WinXPです)でSET
その設定方法では、コマンドプロンプト起動中しか有効にならなかったかと思ったけど。
set 発行直後に、コマンドプロンプトから java.exe -jar file.jar などとして実行できるか試してみて下さい。
jarダブルクリックでも有効な設定をするにはマイコンビューターのプロパティで、環境変数CLASSPATHを編集してみて下さい。
この回答への補足
>実行前にコマンドプロンプト(WinXPです)でSET
これはコマンドプロンプトでの起動の場合です
なので結果は前言どおり起動しません
環境変数設定ファイルを直接編集しても結果は同じです
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java マイクラjavaでForgeを入れたいのですが、インストールした.jarファイルが展開されてしまい中 1 2023/07/28 22:30
- UNIX・Linux VScodeでjarファイルを開く方法 1 2022/06/03 17:00
- アプリ jarを変換する方法 2 2022/06/04 14:26
- 競馬 今のJARのCMは嫌悪感を催しませんか? 5 2023/06/09 13:58
- その他(セキュリティ) 役所など、情報系システムのセキュリティが弱くても業務システムに問題ないか 3 2022/11/02 16:38
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/26 17:13
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Visual Basic(VBA) Excel ファイルを指定し、指定されたファイル内にシートを統合するVBA 8 2023/07/10 10:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EclipseでHTTP404エラーが出る。
-
「メイン・マニフェスト属性が...
-
Eclipse・プロジェクトで、フォ...
-
macでのファイル場所指定
-
プログラム実行の際に、「ソー...
-
jarファイルの解凍ができない
-
「削除するか、クラスパスの正...
-
earファイルを展開する方法
-
javaのCLASS ファイルについて
-
教科書に載っているJavaプログ...
-
環境変数の取得について
-
EclipseでのJDBCドライバについて
-
eclipseでjarのエクスポートが...
-
Eclipseで、配布可能なJARファ...
-
Eclipse「リフレッシュ」と「ク...
-
jarの分割に関するベストプラク...
-
「至急」 教えてください。メ...
-
VisualStudioでC++クラスを追加...
-
”書きこみできません”とエラー...
-
JSP内で外部jsファイルを指定する
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
classファイルについて
-
SVFの設定について:クラスパス...
-
Eclipse・プロジェクトで、フォ...
-
javaクラスファイルをEclipseで...
-
Eclipse「リフレッシュ」と「ク...
-
earファイルを展開する方法
-
eclipse でclassesフォルダーが...
-
「メイン・マニフェスト属性が...
-
jdbcドライバのjarファイルにク...
-
【Eclipse】パッケージ・エクス...
-
java クラスファイルとソースコ...
-
プログラム実行の際に、「ソー...
-
EclipseでHTTP404エラーが出る。
-
Jarコマンドでマニフェストファ...
-
「main メソッドを持つクラスが...
-
サーバから落としてきたWebアプ...
-
EclipseでのJSP・Servlet開発に...
-
「削除するか、クラスパスの正...
-
ファイルのパスの取得について
-
VisualStudioでC++クラスを追加...
おすすめ情報