- ベストアンサー
JAVAコンパイルと実行方法について
- eclipseで開発したjavaのソースをコマンドプロンプトで実行する場合、できるプログラムとできないプログラムがあります。
- 実行できるプログラムは、eclipseの直下にソースが存在し、クラスファイルも同じディレクトリに生成されます。
- 実行できないプログラムは、eclipseのソースフォルダ(src)以下にパッケージ、クラスを作成し、binフォルダ内にクラスファイルが生成されます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
eclipse使いではないので詳細は分かりませんが,eclipseのヘルプからeclipseコミュニティなどのサイトにアクセスしてみてはいかがですか? もしくは”eclipse”でネット検索してみるとご希望のサイトが見つかるかもしれません。
その他の回答 (2)
- goldchildren
- ベストアンサー率62% (10/16)
私もまだまだ勉強中の身なので納得のいく回答であるかはわかりませんが、 出力ディレクトリに違いがあるのは、java.util.loggin.FileHandlerクラスが出力するファイル名にパターンの指定がなければシステムプロパティに依存する処理になっているからです。 つまり、eclipseの場合はプロジェクトフォルダーをベースにパスを通す仕組みに対してコマンドプロンプトで実行した場合はbinフォルダ(classファイルのあるフォルダ)をベースにパスを通す仕組みが原因ではないでしょうか。 つたない説明で申し訳ないので,試しにFileHandlerのインスタンスを生成するのをしたの2パターンでeclipseとコマンドプロンプトで実行してみてください。 例)プロジェクトフォルダの直下に"log"フォルダを作成します。 1.FileHandler fh = new FileHandler("./log/helloworldlog.txt"); →この場合eclipseではちゃんと実行できますが,コマンドプロンプトからだとIOExceptionが発生します。 2.FileHandler fh = new FileHandler("../log/helloworldlog.txt"); →逆にこの場合コマンドプロンプトではちゃんと実行できますが,eclipseからだとIOExceptionが発生します。
お礼
実行してみました。おっしゃるとおりの結果が得られました。ありがとうございます。
補足
システムプロパティというのは変更可能なのでしょうか?もし可能であればどうやったら変更できるのでしょうか? ここら辺になってくると、自分でもどう調査してよいのかわかりません…もし参考になるようなURLがありましたらご教授ください。 質問ばかりで申し訳ございません。
- goldchildren
- ベストアンサー率62% (10/16)
コマンドプロンプトのディレクトリ(C:\Documents and Settings…>)を作成されたプロジェクトのbinフォルダに移動して java クラス名 と打ち込めば実行できると思います。 ディレクトリの移動は下記のURLを参考にして下さい。
補足
迅速な対応ありがとうございます。ディレクトリの変更ミスでした。 すいませんがもう一つ質問よろしいでしょうか? 今、ログを出力するプログラムを作成しています。参考URL→http://www.hellohiro.com/logging.htmのようなプログラムを作成しています。同様にソースフォルダにjavaファイル、binフォルダにclassファイルが作成されます。そこで、FileHandlerを生成するときにログ出力名を指定しますが、パスを指定しないファイル名だけの場合、出力されるディレクトリがeclipceで実行するときと、コマンドプロンプトで実行するときと違うのはなぜでしょうか? eclipceで実行した場合は、作成したプロジェクトのフォルダの直下に作成されるのですが、コマンドプロンプトで実行した場合はbinフォルダの直下に作成されてしまいます。 タイトルと少々違った内容の質問になってしまいましたが、宜しくお願いします。
お礼
ありがとうございます。いろいろネットで調べてみようと思います。 タイトルとは少々違った質問ばかりしてしまい申し訳ございません。とても感謝しております。また機会がありましたら宜しくお願いします。