質問: ### Java初心者です。専門用語等もまだ知らないことが多いです。 Windows7でeclipseを用いてJavaの勉強をしています。 Helloと表示させるプログラムをTest1というクラス名で名前でsrcに保存し、コマンドプロンプトを立ち上げ、 ``` C:\eqlipse\pleiades\Foundation\src\test>javac Test1.java ``` と打ち、javacコマンドは問題なく動きました。その後、srcフォルダとbinフォルダにそれぞれクラスファイルは生成されていました。しかし、 ``` C:\eqlipse\pleiades\Foundation\src\test>java Test1 ``` と打つとエラーが出ました。 ``` エラー:メイン・クラスTest1は見つからなかったかロードできませんでした。 ``` と表示されています。 該当ソースコードは、 ``` package test; public class Test1 { public static void main(String[] args) { System.out.println("Hello"); } } ``` となっており、eclipseの中で実行すると、コンソールでHelloと表示されます。 ``` ### 試したこと コンパイラ(?)はJavaのキットの、jdk1.8.0_171を使っています。 jdkの中にはjavac.exeなど一通りのものはありました。 環境変数は、システム環境変数のPathに、jdkのインストール先である C:\Program Files (x86)\Java\jdk1.8.0_171\bin; を既存のパス設定に追加しました。 ほかにCLASSPATHというものも必要などのサイト情報なども参考にし、環境変数に新たに変数としてCLASSPATHを追加し、最初は「.」のみを値に入れ同じくエラーが出たので、「.」は消して、jdkのインストール先を値の欄に追加しました。 ほかの質問サイトなども含め、書いてある対応策などは基本的には実行しましたが、何度やってもエラーになってしまいます。素人なので原因が完全にわかりません。。 環境変数などもおそらく間違ってはいないと思います。。 エラーを出さず、コマンドプロンプトでTest1を実行し、Helloを表示させる方法を教えて下さい。 何卒よろしくお願いします。 ### 補足情報(FW/ツールのバージョンなど) c:ドライブ直下にJavaフォルダを作り、以下をそこにインストール。 jdk:jdk1.8.0_171 jre:jre1.8.0_171 バージョンをコマンドプロンプト上で表示した結果 C:\Users\>java -version java version "1.8.0_171" Java(TM) SE Runtime Environment (build 1.8.0_171-b11) Java HotSpot(TM) Client VM (build 25.171-b11, mixed mode, sharing) eclipse ver:4.6 Neon 使用 windows7 64bitPC 使用
回答: コードブロックが少し壊れているのでちょっとわかりにくいんですが、おそらく `Test1.java` の先頭が `package test` で始まってますよね? Javaはこのパッケージとディレクトリの整合性を見ようとしてしまうので、パスの中からクラスをうまく探して実行できません。 手段としては2つあります。 1. `package test` を削除 2. `Test1.class` を `./test/` 以下に置いて、 `java test.Test1` で実行