JAVAコンパイルと実行方法について

このQ&Aのポイント
  • eclipseで開発したjavaのソースをコマンドプロンプトで実行する場合、できるプログラムとできないプログラムがあります。
  • 実行できるプログラムは、eclipseの直下にソースが存在し、クラスファイルも同じディレクトリに生成されます。
  • 実行できないプログラムは、eclipseのソースフォルダ(src)以下にパッケージ、クラスを作成し、binフォルダ内にクラスファイルが生成されます。
回答を見る
  • ベストアンサー

JAVAコンパイルと実行

はじめまして。質問があります。 eclipseで開発したjavaのソースを実行するとき、メニューからメインクラスを指定し実行するだけでプログラム実行されますが、そのプログラムをコマンドプロンプトで実行する場合、できるプログラムとできないプログラム(例外:NoClassDefFoundError)があります。 コンパイルはeclipceのほうで勝手に.classファイルが生成されるので、そのclassファイルをjava [ファイル名]と打つだけだと思います。 実行できるプログラムとできないプログラムの違いは以下の通りです。 ・実行できるプログラム eclipseで新規でプロジェクトを作成。その直下にソースが存在し、クラスファイルも同じディレクトリに生成されます。 ・実行できないプログラム eclipseで新規でプロジェクトを作成。ソースフォルダ(src)を作成し、その下からパッケージ、クラスを作成しました。そうすると、エクスプローラでそのプロジェクトを見ると、binフォルダが生成されていました。その中にクラスファイルが生成されます。 違いはこのような感じです。実行できないプログラムをコマンドプロンプトで実行させるためにはどうしたらよいでしょうか?eclipseの使い方はだいぶわかってきたのですが、どのように動作しているか(java自体も)がわかりません。ご教授宜しくお願い致します。 OS:windows2000 開発環境:eclipse 3.0(J2SE 1.4.2_03)

  • Java
  • 回答数3
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

eclipse使いではないので詳細は分かりませんが,eclipseのヘルプからeclipseコミュニティなどのサイトにアクセスしてみてはいかがですか? もしくは”eclipse”でネット検索してみるとご希望のサイトが見つかるかもしれません。

m_sport_mraa
質問者

お礼

ありがとうございます。いろいろネットで調べてみようと思います。 タイトルとは少々違った質問ばかりしてしまい申し訳ございません。とても感謝しております。また機会がありましたら宜しくお願いします。

その他の回答 (2)

回答No.2

私もまだまだ勉強中の身なので納得のいく回答であるかはわかりませんが、 出力ディレクトリに違いがあるのは、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が発生します。

m_sport_mraa
質問者

お礼

実行してみました。おっしゃるとおりの結果が得られました。ありがとうございます。

m_sport_mraa
質問者

補足

システムプロパティというのは変更可能なのでしょうか?もし可能であればどうやったら変更できるのでしょうか? ここら辺になってくると、自分でもどう調査してよいのかわかりません…もし参考になるようなURLがありましたらご教授ください。 質問ばかりで申し訳ございません。

回答No.1

コマンドプロンプトのディレクトリ(C:\Documents and Settings…>)を作成されたプロジェクトのbinフォルダに移動して java クラス名 と打ち込めば実行できると思います。 ディレクトリの移動は下記のURLを参考にして下さい。

参考URL:
http://www.hellohiro.com/appli.htm
m_sport_mraa
質問者

補足

迅速な対応ありがとうございます。ディレクトリの変更ミスでした。 すいませんがもう一つ質問よろしいでしょうか? 今、ログを出力するプログラムを作成しています。参考URL→http://www.hellohiro.com/logging.htmのようなプログラムを作成しています。同様にソースフォルダにjavaファイル、binフォルダにclassファイルが作成されます。そこで、FileHandlerを生成するときにログ出力名を指定しますが、パスを指定しないファイル名だけの場合、出力されるディレクトリがeclipceで実行するときと、コマンドプロンプトで実行するときと違うのはなぜでしょうか? eclipceで実行した場合は、作成したプロジェクトのフォルダの直下に作成されるのですが、コマンドプロンプトで実行した場合はbinフォルダの直下に作成されてしまいます。 タイトルと少々違った内容の質問になってしまいましたが、宜しくお願いします。

関連するQ&A

  • java コンパイル後の実行

    java初心者です。 先ほどまで簡単なプログラムをコンパイルして実行という感じで練習していましたが。 その後からコンパイルして実行するとコマンドプロンプト上で実行されずテキストエディタのファイルが実行されてしまいます。 いろいろ試したのですがわかりません。 どうか教えてください。お願いします。

    • ベストアンサー
    • Java
  • Javaファイルをコンパイル

    JAVAの初心者なのですが、Servletをやるために参考書を購入したのですが、最初で行き詰まってしまいました。参考書通りにやってもできないのです。 コマンドプロンプトを使ってコンパイルをするという事なのですが、コンパイルができません。環境変数がうまく設定できてないのかもしれません。 クラスパスの設定をしてWEB-INF ディレクトリへ移動したのですが、最後のコンパイルの実行が上手くいきません。「パッケージを見つけられません」と「シンボルを見つけられません」というメッセージが書かれるのですが、それはコード自体が間違ってるのでしょうか。 それとjava開発ソフトのEclipseを使っていたのですが、それでできるclassファイルでいいのですか?それとも、テキストファイルからコマンドプロンプトを使ってコンパイルしなければいけないのでしょうか。

    • ベストアンサー
    • Java
  • Eclipseでは実行できるのにコマンドラインではできません。

    eclipse上で、別プロジェクト(のクラスを参照し、標準出力を行うクラスを作成しました。Eclipce上では、起動すると正常に実行できるのに、コマンドプロンプト上で実行すると、別プロジェクトのクラスがない (Exception in thread "main" java.lang.NoClassDefFoundError: "別プロジェクトの参照しているクラス") のエラーが出力されます。 たたいたコマンドは、 java -jar ××× .jar aaaaa ※classpathには参照するクラスフォルダおよびjarファイルを参照するように設定しています。 ※因みに、eclipseのbuild.xmlを実行してjarファイルは作成。正常に終了しました。 どなたか同じ現象で回避されてた方がいらっしゃいましたら、どうかご教授していただけたらと思います。 よろしくお願いいたします。

  • Javaでコンパイルできなくなりました

    javaでコンパイルできなくなりました。今まではJava2 SDK バージョン1.4.2_03をインストールしてコマンドプロンプトからjavac、javaコマンドを用いコンパイル、実行していました。 そして、Eclipse(バーション3.0)というIDE環境に興味を持ちインストールした後にとりあえずもう一度コマンドプロンプトからjavacコンパイルしてみたらエラーがでるようになりました。 ソースを書くと長くなってしまうので簡単に説明すると、String sに"Hello World"を代入してSystem.out.println()で表示させるだけのプログラムです。Eclipseをインストールする前は実行できたのでソースに問題があるという事はありません。エラーメッセージは以下のような感じでした //エラーメッセージ 検出値 : java.lang.String 期待値 : String String s = "Hello World"; その後にソースで String s="Hello World";としていた行を java.lang.String s = "Hello World";に変更しました するとjavacではエラーが出なくなるのですがjavaコマンドで実行すると Exception in thread "main" java.lang.NoSuchMethodError: main というメッセージが出て実行できないです。 環境変数は、SDKインストール後、PATHC:\j2sdk1.4.2_03\bin;を加え、Eclipseインストール後は何も変更していません。 何が問題なのでしょうか?お願いします。

    • ベストアンサー
    • Java
  • JAVAについて。コンパイルができません

    public class Main { public static void main(String[] args){ System.out.println("Hello World"); } } 上のソースで記述して、コマンドプロンプトでコンパイルしようとすると 下のような表示が起きます C:\Program Files\Java\jdk-12.0.1\bin>javac Main.java Main.java:1 エラー: Mainの書き込み中にエラーが発生しました: C:\Program Files\Java\ jdk-12.0.1\bin\Main.class public class Main { ^ エラー1個 何が原因でコンパイルされないかわからないです。 わかるかたいましたらよろしくお願いします。

  • Windows環境でjavaのAppの実行方法

    EclipseのPleiadesの開発環境でGUIプログラムを作成していますし、Eclipseの 環境では、Appプログラムを実行出来ます。 ソースファイル名:Sample.java コンパイル出力:Sample.class Q1)MSのWindows上で、完成した上記Appプログラムを実行する方法を   お教え頂けないでしょうか?   注)exeファイルが無い様です。 以上、宜しくお願いします。

  • 実行可能ファイルは出来ないの?

    all-in-one-eclipseをインストールして、画面を作成しています。 例えば、デザイナで画面を作成(恐らくプラグインのVisualEditorを使用)して、F11を押下して実行します。 →画面が表示されます。 all-in-one-eclipseのエディタ上からは普通に実行できるのですが、 all-in-one-eclipseのエディタから実行したくない場合はどうすれば良いのでしょうか? 毎回出来上がったクラスファイルをコマンドプロンプトから java ***.class と実行する必要があるのでしょうか。 .Netのexeファイルの用に ダブルクリックで実行出来る実行可能ファイルは出来ないのでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Java
  • javaの実行形式jarファイルでの出力について

    Windows環境でEclipseを使用してJavaの勉強を行なっています。 実行形式のjarファイルを生成して、サンプルプログラムは動くようになったのですが、コマンドプロンプトに何も表示されないのです。 例えば、System.out.println("abc"); という命令も、全く無視されてしまいます。 どうすればこのコマンドプロンプトに表示できるのでしょうか?

    • ベストアンサー
    • Java
  • Eclipseがコンパイル、および実行時に吐くコマンドについて

    Eclipseがコンパイル、および実行時に吐くコマンドについて JAVA初心者です。 JAVAのプログラムを作成した際、 $javac hoge.java $java hoge 等とすると思います。 ここで質問なのですが、 ###############  質問  ################# Eclipseで実行のボタンをおしてJAVAプログラムをコンパイル、実行した場合に、Eclipseが吐くコマンドを確認するためにはどのようにすればよろしいでしょうか? ###################################### というのも、http://okwave.jp/qa/q5928481.htmlで質問させていただいたことについて、Eclipseだとうまく実行できたので、Eclipseが吐くコマンドが確認できれば「自分の打ち込んだコマンドのどこが誤っていたのか」を知るヒントになると考えたからです。 どなたか方法をご教授頂けないでしょうか。よろしくお願いします。

    • ベストアンサー
    • Java
  • Eclipseで作成したクラスを他のPCで実行するには?

    こんにちは、JAVA初心者です。 <開発環境> Eclipse v.3.4.2 jre1.5 <質問> (1)プログラムの配布について  Eclipseで作成したプログラムを別PCで実行するには  何をする必要がありますか。  例えば、開発時にダウンロードしたjarファイルや、jre1.5なども  必要でしょうか。  それとも、作成したクラスファイルと実行するhtmファイル  さえあれよいのでしょうか。 (2)Eclipseで実行できるのにhtmから実行できない  Eclipseでメール送信クラスを作成し、ボタンを押すと  メールが送信されるプログラムを作成したのですが、  Eclipseで実行するとメールが送信されるのですが、  htmから作成したクラスを呼び出して実行すると、  ボタンが表示されるとこまでいくのですが、  メールが送信されません。  原因はパスの設定でしょうか。