プロが教える店舗&オフィスのセキュリティ対策術

昨日から「やさしいJava」という本をつかって勉強を始めた者です。
最初からなにか上手くいかないので、アドバイスいただけたら嬉しいです。


public class Welcome{


public static void main(String[] args){
System.out.println("Welcome to Java!");
System.out.println("Javaの世界へようこそ!");
}
}

というソースを作りました。
これを
javac Welcome.java
とやって、そこまではよさそうなのですが、そのあと、
java Welcome
をやったらエラーになります。
ソースも間違いないと思うのですが、よくわかりません。
ファイルの仕方に問題があるのかなとも思っています。

どうか、よろしくお願い致します。

A 回答 (3件)

>でもどうしてそのように入力したら上手くいくのでしょうか?


>良ければ教えていただけないでしょうか?
あなたがWindows環境下ならコマンドプロンプト上で
set classpath
と打ってみてください。その結果、あなたの環境下での「クラスパス」というものがわかります。「クラスパス」というのは「クラスを検索するための候補のパス」です。上記のコマンドをうつと
classpath=~
という結果が返ってくると思いますが、その「~」の部分しかクラスを検索しに行きません。つまり、Welcome.classのあるフォルダがそこに設定されていればWelcomeの存在がわかるんですが、設定されていない場合は検索しないので存在がわからないんです。というわけで、実行できません。


UNIX環境下の話はよく知らないのですが、Welcome.javaに

System.out.println("classpath="+System.getProperty("java.class.path"));

を加えて実行してもらえれば同じようにclasspathがわかるはずです。

で、
java -cp .; Welcome
というのは「-cp .;」の部分で、「カレントディレクトリをクラスパスにしなさい」と言っています。つまり、Welcome.classが存在するフォルダを検索しなさいと言っているので、無事Welcomeクラスが見つかって実行できるわけです。

多分、カレントディレクトリをいちいち指定するのは面倒だと思うので、Windowsだったら環境変数の設定でclasspathの「~」の先頭に「.;」を付け加えて「.;~」にしてください。すると
java Welcome
だけで実行できるようになるはずです。(cdでディレクトリを移動していたらですが)


System.out.println("classpath="+System.getProperty("java.class.path"));
を加えたWelcome.javaを作って

1) 現状のままjava -cp .; Welcomeで実行した場合
2) 環境変数に「.;」を付け加えてjava Welcomeで実行した場合
3) 環境変数に「.;」を付け加えてjava -cp .; Welcomeで実行した場合

の「classpath=~」の部分を見てもらえれば理解が深まると思います。
    • good
    • 0
この回答へのお礼

返信ありがとうございます!
丁寧に教えていただいたおかげでようやく意味がわかってきました。
そしてうまく実行もできるようになりました!
ありがとうございました!

お礼日時:2006/05/24 22:44

「エラーになる」とは、どんなエラーですか?

    • good
    • 0

こんにちは。



まず、エラー関連に関する質問の場合はエラー内容を明記してください。
(何のエラーかわからないと回答出来ない)
ただ、コンパイルは通っているのでクラスパスの設定が出来てないのだと思います。

java -cp .; Welcome

と打ってみてください。


コンパイルにエラーが無ければ、文法的には問題ないということになります。
文法的にはというのは、実行してみたら不正なデータを扱っていた等あると
エラーになります。

この回答への補足

Exception in thread"main"java.lang.NoClassDefFoundError:Welcome
と書いてありました。


java-cp.;Welcome
もやってみましたが、

'java-cp.;Welcome'は内部コマンドまたは外部コマンド、操作可能なプログラムバッチファイル
として認識されていません。
と出ました。

よろしくお願いします!

補足日時:2006/05/23 19:07
    • good
    • 0
この回答へのお礼

すみません、もう一度ソースを打ち直してから
java -cp .; Welcome
をやってみたらきちんと

Welcome to Java!
Javaの世界へようこそ!

とでました!
ありがとうございました^^!

でもどうしてそのように入力したら上手くいくのでしょうか?
良ければ教えていただけないでしょうか?

お礼日時:2006/05/23 20:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!