
昨日から「やさしい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
をやったらエラーになります。
ソースも間違いないと思うのですが、よくわかりません。
ファイルの仕方に問題があるのかなとも思っています。
どうか、よろしくお願い致します。
No.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=~」の部分を見てもらえれば理解が深まると思います。
返信ありがとうございます!
丁寧に教えていただいたおかげでようやく意味がわかってきました。
そしてうまく実行もできるようになりました!
ありがとうございました!
No.1
- 回答日時:
こんにちは。
まず、エラー関連に関する質問の場合はエラー内容を明記してください。
(何のエラーかわからないと回答出来ない)
ただ、コンパイルは通っているのでクラスパスの設定が出来てないのだと思います。
java -cp .; Welcome
と打ってみてください。
コンパイルにエラーが無ければ、文法的には問題ないということになります。
文法的にはというのは、実行してみたら不正なデータを扱っていた等あると
エラーになります。
この回答への補足
Exception in thread"main"java.lang.NoClassDefFoundError:Welcome
と書いてありました。
java-cp.;Welcome
もやってみましたが、
'java-cp.;Welcome'は内部コマンドまたは外部コマンド、操作可能なプログラムバッチファイル
として認識されていません。
と出ました。
よろしくお願いします!
すみません、もう一度ソースを打ち直してから
java -cp .; Welcome
をやってみたらきちんと
Welcome to Java!
Javaの世界へようこそ!
とでました!
ありがとうございました^^!
でもどうしてそのように入力したら上手くいくのでしょうか?
良ければ教えていただけないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Java javaのクラスの分け方について質問です。 APIの内部用と外部用でクラスを分けたいのですがインター 2 2022/04/26 16:06
- Java プログラミングのプの字も知りませんが、プログラミングを勉強したいです。とりあえず、学ぶものを決めない 3 2022/11/04 13:10
- Java JavaでWebページ作成 7 2023/07/21 21:09
- Java java final 1 2022/06/10 22:49
- Java mac mini 2009 でのmac OS における Java の入れ替えについて 1 2022/12/27 19:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エラー:org.springframeworkが...
-
エンコード指定でコンパイルエラー
-
Eclipseで、プロジェクト名のと...
-
タグが閉じてないというエラー...
-
java Eclipse プロジェクト名前...
-
tomcat起動時エラー
-
Java
-
getParameterについて
-
eclipseをバージョンアップした...
-
シンボルが見つかりませんとい...
-
Eclipse WTP、Strutsについて
-
Vアプリ作成時のエラーについて
-
JSPで意味不明のコンパイルエラー
-
演算子*はjava.lang.String.dou...
-
struts-config.に対する読み込...
-
JSON形式でsocket通信するには
-
最大オープン・カーソル数のエラー
-
java String型から日付型へ変換
-
JSPの表示時エラー
-
JAVAでアルファベットを数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipseで、プロジェクト名のと...
-
エラー:org.springframeworkが...
-
コンパイル時にエラーが出てし...
-
eclipseをバージョンアップした...
-
tomcat起動時エラー
-
構文エラーのやり直しについて
-
タグが閉じてないというエラー...
-
Eclipse デバッグ エラー処理
-
Javaのエラーについてです
-
eclipseでのsvn認証エラー回避方法
-
Eclipseの環境について
-
シンボルが見つかりませんとい...
-
java eclipse apache tomcat 9....
-
java エラー
-
【ジェネリックス】コンパイル...
-
eclipseのエラーについて質問で...
-
BufferdReaderが見つからない?
-
javamailにて連続送信の際のエラー
-
拡張子 class ファイルを開きた...
-
JSP NullPointerException
おすすめ情報