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

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

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

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

Java

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

Eclipse

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

Q&A

1回答

1513閲覧

javaファイルを実行出来ません

ruuuu

総合スコア168

import

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

Java

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

Eclipse

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

0グッド

0クリップ

投稿2020/05/10 10:14

編集2020/05/10 11:41

書籍「独習java」のサンプルコードをEclipseへimportし、ファイルを実行したのですが、以下のエラーが出てしまいました。

エラー: メイン・クラスto.msn.wings.selflearn.chap10.MethodRefUseBasicが見つからなかったかロードできませんでした

import手順は、「ファイル」「インポート」から「一般」→「既存プロジェクトをワークスペースへ」を選択、「次へ」を押し「ルートプロジェクト」の欄に「selfearn」フォルダを選択しました。
そこから、「to.msn.wings.selfearn.chap10」内の「MethodRefUseBasic.java」ファイルを選択し、左上の実行ボタンから、「実行」→「javaアプリケーション」としました。

イメージ説明

エラー内容から検索し調べたのですが、解決方法が出て来ませんでした。
どなたか、アドバイス頂けましたら幸いです。

追記
MethodRefUse.javaは下記になります。

package to.msn.wings.selflearn.chap10; public class MethodRefUse { public void walkArray(String[] data, Output output) { for (var value : data) {![イメージ説明](ee08f2ba556d23582b3cd576e86819fd.png) output.print(value); } } static void addQuote(String value) { System.out.printf("[%s]\n", value); } }

MethodRefUseBasic.javaは下記になります。

package to.msn.wings.selflearn.chap10; public class MethodRefUseBasic { public static void main(String[] args) { var data = new String[] {"春はあけぼの", "夏は夜", "秋は夕暮れ"}; var u = new MethodRefUse(); u.walkArray(data, MethodRefUse::addQuote); } }

Output.javaは下記になります

package to.msn.wings.selflearn.chap10; @FunctionalInterface public interface Output { void print(String str); }

フォルダの上の階層部分は以下のようになっています。
イメージ説明

以下はプロジェクト→プロパティ→javaコンパイラを選択した際の画像です
イメージ説明

以下は、「ビルドパス」→「ビルドパスの構成」の「ライブラリー」タブの画像になります。
イメージ説明

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

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

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

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

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

Yasumichi

2020/05/10 10:31

MethodRefUnuse.java MethodRefUnuseBasic.java それぞれを以下のように質問に追記することはできませんか? MethodRefUnuse.java ```java MethodRefUnuse.java のコードを貼る ``` MethodRefUnuseBasic.java ```java MethodRefUnuseBasic.java のコードを貼る ```
m.ts10806

2020/05/10 10:35

そもそも書籍と自身の環境のバージョンは合ってますか?
ruuuu

2020/05/10 10:53

>MethodRefUnuse.java MethodRefUnuseBasic.java こちら、誤りがありました... それぞれ、「MethodRefUse.java」「MethodRefUseBasic.java」でした...
Yasumichi

2020/05/10 11:06

HogeAnimalLover さんの通りに直せば、行けるパターンですかね。 あと、JDK のバージョンはどれを使っているか分かりますか?
ruuuu

2020/05/10 11:13

書籍のバージョンは、「adoptOpenJdk 11」で、自分の環境では、ターミナルで確認した限りでは、「openjdk 13.0.2 2020-01-14」でした。 public classの名前とファイル名を確認しましたが、こちらは同じでした。
m.ts10806

2020/05/10 11:16

コードブロック内にteratailの画像提示用のマークダウンが紛れ込んでいます。 コードブロック内は純粋にコードだけにしてください。 あと、バージョンは合わせないと、極論言うと全く使えません。 JDKだけでなくIDEを使っているならIDEも。できればOSも、ですね。
m.ts10806

2020/05/10 11:17

ただ、表示されてる方の画像見ると、だいぶimportが足りてないような。 eclipseのビルドエラー出てますし。
Yasumichi

2020/05/10 11:20

Eclipse でそれぞれのソースにエラーは出ていませんか? あと、以下を確認できますか? Eclipse パッケージエクスプローラーで「JRE システム・ライブラリー [ここを確認]」がどのように表示されているか? Eclipse で「プロジェクト」→「プロパティ」で表示できるウィンドウで左のツリーから「Javaコンパイラー」を表示した時にコンパイラーの準拠レベルがどう表示されているか。
Yasumichi

2020/05/10 11:21

少なくともこちらの環境では、提示された3つのファイルを作成しただけで実行可能でした。
ruuuu

2020/05/10 11:28

>Eclipse でそれぞれのソースにエラーは出ていませんか? こちら、全てのソースファイルでエラーの表示が出ていました。 >Eclipse パッケージエクスプローラーで「JRE システム・ライブラリー [ここを確認] すみません。こちらは、パッケージエクスプローラー内に見当たらないのですが、どのようにして確認すれば良いでしょうか...? >Eclipse で「プロジェクト」→「プロパティ」で表示できるウィンドウで左のツリーから「Javaコンパイラー」を表示した時にコンパイラーの準拠レベルがどう表示されているか。 こちらについては、画像を追記させて頂きます。
ruuuu

2020/05/10 11:35

画像の方、追記しました。 エラーについてですが、MethodRefUse.javaファイルの「MethodRefUse::addQuote」ここの部分にカーソルを合わせて見ましたら、「メソッド参照はソース・レベル1.8以上でのみ許可されています」と表示されていました。さらに「main(String[] args) {」ここの部分では、「Stringを型に解決出来ません」との表示がされていました。
Yasumichi

2020/05/10 11:35 編集

> こちらは、パッケージエクスプローラー内に見当たらない http://www.catv296.ne.jp/~always/sankou.png のように src と横並びに存在するはずなのですが、一番、下のパッケージの下とかにないでしょうか? あとは、適当なファイルを右クリックして、「ビルドパス」→「ビルドパスの構成」で表示されるウィンドウで「ライブラリー」というタブを開くと確認することができます。(プロジェクトのプロパティと同じ画面です。)
ruuuu

2020/05/10 11:41

>適当なファイルを右クリックして、「ビルドパス」→「ビルドパスの構成」で表示されるウィンドウで「ライブラリー」というタブを開くと確認することができます。 ありがとうございます。こちらの方法で確認出来ました。 キャプチャー画像を追記しました為、ご確認頂けましたら幸いです。
Yasumichi

2020/05/10 11:51 編集

> for (var value : data) { JDK10 以上でないとコンパイルできない文法も使われています。コンパイラレベルは 13 にしておいた方が良さそうです。 【追記】 追加したものにチェックボックスを入れてデフォルトにします。 openjdk 13.0.2 のパスは確認できますか。確認できれば、以下の手順も実行してください。 1 「ウィンドウ」→「設定」 2 左側のツリーから「Java」→「インストール済のJRE」を選択 3 インストール済みの JRE に openjdk 13.0.2 のパスが存在するか?  存在しない場合、「追加」をクリックして、以下の手順を実行します。 1 JRE の型は「標準VM」にして「次へ」 2 JREホームの右側「ディレクトリ」をクリックして、openjdk 13.0.2 のパス(bin は含まない)を選択します。 3 完了をクリックします。
Yasumichi

2020/05/10 11:56

上記の最後で手順を忘れてました。追加したものにチェックをいれてデフォルトにする必要があります。 その上で以下の手順を実行してください。 1 適当なファイルを右クリックして、「ビルドパス」→「ビルドパスの構成」 2 「ライブラリー」というタブを開く 3 今ある JRE システムライブラリーを選択して、「除去」 4 ライブラリーの追加 5 JRE システムライブラリーを選んで「次へ」 6 「ワークスペースのデフォルト JRE」が選択されていることを確認し、「完了」
ruuuu

2020/05/10 11:56 編集

> openjdk 13.0.2 のパスは確認できますか。 すみません...こちらの確認方法が分かりません。 また、「1 「ウィンドウ」→「設定」」こちらですが、「ウインドウ」メニューには「パースペクティブ」などはありますが、「設定」タブは存在しないです...
Yasumichi

2020/05/10 11:57

Windows の場合でした。他の環境は、「編集」→「設定」です。
ruuuu

2020/05/10 13:42

自分はMacなのですが、「Eclipse」→「環境設定」にて見つけることが出来ました。 度々すみません。こちら「openjdk 13.0.2 のパス」なのですが、ターミナルより「which java」コマンドを実行し、出力された場所であっていますでしょうか...?
Yasumichi

2020/05/10 14:56

その場所から、bin を除けば、問題ないです。
ruuuu

2020/05/11 00:36 編集

>その場所から、bin を除けば、問題ないです。 ありがとうございます。 自分の場合「/usr/bin/java」だったのですが、この場合「/usr/java」とすれば良いのでしょうか...?
Yasumichi

2020/05/11 10:36

/usr/bin/java って、シンボリックリンクになってたりしませんか?その先のシンボリックリンクでない場所を探すことはできますでしょうか?
ruuuu

2020/05/11 11:39 編集

>/usr/bin/java って、シンボリックリンクになってたりしませんか?その先のシンボリックリンクでない場所を探すことはできますでしょうか? すみません。実は仕事上の理由で現在のEclipseから、違うバージョンのEclipseへimportするプロジェクトフォルダを変更しなければならなくなり、新しいバージョンのEclipseで、同じプロジェクトフォルダをimportし、実行しましたら、実行に成功しました。 長らくご助言頂いていたのに、申し訳ありません...
guest

回答1

0

提示情報だけでは詳しくは分かりませんが、public classの名前とファイル名(拡張子除く)は同じでなければなりません。

投稿2020/05/10 10:33

HogeAnimalLover

総合スコア4830

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問