質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

1回答

3679閲覧

エラー:メイン・クラス○○○が見つからなかったかロードできませんでした

soundSK38

総合スコア7

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2018/06/01 10:22

編集2018/06/01 11:28

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 使用

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/06/01 10:56

#はコメントじゃないのでコンパイルエラーたね。
guest

回答1

0

ベストアンサー

コードブロックが少し壊れているのでちょっとわかりにくいんですが、おそらく Test1.java の先頭が package test で始まってますよね?

Javaはこのパッケージとディレクトリの整合性を見ようとしてしまうので、パスの中からクラスをうまく探して実行できません。
手段としては2つあります。

  1. package test を削除
  2. Test1.class./test/ 以下に置いて、 java test.Test1 で実行

投稿2018/06/01 10:54

mather

総合スコア6753

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

soundSK38

2018/06/01 11:30

コードがうまく表示されていなかったようですみません! この質問サイトを利用するのも初めてで、アップ修正の仕方がわからないので、今はとりあえず内容のお返事をコメントでさせていただきます。 コードブロック内のTest.javaのお話は、 ①元々eclipseで作ったソースコードが「Package test;」で始まっているかどうかということでしょうか?(無知で申し訳ありません...)その解釈だとすると、確かにソースコードはそこから始まっていますが、削除すると保存ができずエラーができてしまいます。 ②コマンドプロンプト上のjavaコマンドを使用した際にコマンドプロンプトの最初が「packege test」で始まっているか(もしくは私が「java packege test.Test1」と入力しているか)どうかということでしょうか? ちなみにコマンドプロンプト上では「java Test1」と入力しています。。 ③①、②のいずれでもない。別のお話。 あと、「Test.class」ファイルを「./test/」以下に置くというのも、どのような意味なのか分かっていません。。 本当に無知で理解に乏しく申し訳ありません。。 お返事の説明も拙く、きちんとお答えできていないとは存じますが、もしご理解いただければ、引き続きアドバイスいただけますと幸いです。
mather

2018/06/01 11:33 編集

では、試しに C:\eqlipse\pleiades\Foundation\src (一階層上のフォルダ)に移動してから javac test.Test1 を実行してみてください。
mather

2018/06/01 11:37

package test に関してはソースコードの1行目の話です。これがあることで、パッケージ test の中に Test1 クラスを作成する、という意味になります。 Javaではこの構造やフォルダ名やクラス名と一致することを前提としているためクラスパスの指定フォルダ(特に指定がなければ現在のフォルダ)から見て test/Test1.class があることを期待しているんです。 ちなみに、 ./test/ は現在のフォルダ (.) にある test フォルダのことを指します。
soundSK38

2018/06/01 12:20 編集

ご回答ありがとうございます! まだ理解できていないところもあるかも知れませんが、mather様のご説明で少しずつ分かってきました。 一階層上のフォルダに移動して、「javac test.Test1」を実行してみました! 表示されたのは、 エラー:クラス名"test.Test1"が受け入れられるのは注釈処理が明示的にリクエストされた場合のみです。 エラー1個 となりました。
soundSK38

2018/06/01 12:24

ソースコードのpackege test;を削除すると下記のエラー表示されてしまいます。 - 宣言されたパッケージ "" が、予想されているパッケージ "test" に一致しません これは私の削除方法が間違っているということでしょうか? パッケージ宣言はクラスの中ではする必要はないのでしょうか?
mather

2018/06/01 12:31

あ、ごめんなさい。 java test.Test1 でした。
soundSK38

2018/06/01 12:40

実行できました!!!! きちんと「Hello」が表示されました! ありがとうございます! これは、testというパッケージの中にTest1という名前のクラスを作ったために、Javaがtest/Test1.classがあると認識するようになっていて、それはsrcフォルダにあるために、コマンドプロンプトする際はディレクトリの移動が必要になっている。ということでしょうか.....?? もし同じ方法でパッケージを作成後クラスを作成した場合は今後、javacコマンドを実行後、同じようにディレクトリを移動してからjava 〇〇(パッケージ名)/△△(クラス名)と打たなくてはいけないのでしょうか? きちんと理解できていませんでしたらすみません。。 解決したのにさらに質問を重ねてしまい申し訳ありませんが、もしよろしければお教えいただけますか?
mather

2018/06/01 12:44

実は、 javac test/Test1.java を実行してもコンパイルすることができて、生成されるクラスファイルも test/Test1.class になります。 なので基本的には src フォルダを起点にコンパイルや実行をすることになると思いますし、Eclipseが期待しているパスもここだと思います。
soundSK38

2018/06/01 12:50

そうなのですね!!! 知りませんでした。。 大変貴重なアドバイスいただけまして感謝致します! 今後はsrcフォルダを起点にコンパイル・実行をしていきます! 本当にありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問