「夫を成功」へ導く妻の秘訣 座談会

JAVAにのeclipseに関する質問です!
私は最近eclipseをインストールしたのですが、最初のプログラムすら動かせなくて困ってます。実行しようとするとエラー メインクラスを検出およびロードできませんでした 原因 java.lang.ClassNotFoundExceptionとでてきます。
状況としましてはただCドライブ直下に解凍して起動しただけです。一番簡単なJavaと言うサイトを参考にしながらやったので一応パソコンのpathは通ってるのかなと思ってます。(コマンドプロンプトでは動かせるので)
ぜひ回答お願いします!

質問者からの補足コメント

  • 実行は緑色の再生ボタンの横の逆三角形で実行しています。
    今、別のエラーを見つけてビルドパスのエラーが解決されるまで、プロジェクトをビルドできませんとありました。こちらの解決方法はわかりますか?

      補足日時:2018/04/03 22:39

A 回答 (3件)

まず、ビルド自体がとおってない可能性があるです。



メインクラスのソースコードを見て、コンパイルエラーのマークがソースコード上にでてませんか。

それなら、メインクラスの.classができてないかもです。(ない言われて当然)

メインクラス以外でコンパイルエラーでてるかも。

全体見たかったら、
「問題ビュー」で見るです。

ビルドパスの設定がいるのかもしれんです。
参考にしてるサイトなどで、なにかの*.jarのライブラリーを使うようなものでしょか?

メインクラスがあるプロジェクトを右クリックして
プロパティとかで、
ビルドパス
の項目とかで
jarの追加とかできるとこありますが。

複数人いて事情があってできないときもあるけど。
一人でソースいじってるなら、すべてクリーンビルドして、問題ビューに、
エラーがなにもでない
ようにして実行させますが。

あと、
緑色の再生ボタンとありますが、それは設定がいろいろあるうちの、直近、
動かしたものを再度、実行するような感じですので。
本当に今、それ押したときに、目当てのものを動かす状態になってるかというのもあります。

一回目動かす時は、実行の構成とか、
デバックの構成とかで、
設定しきって動かす。

複数、設定ができて、
(開発してるものが複数できてきて、)
実際に開発時にデバック作業で何度も、同じものを動かすときなど。

簡単に、それを押すだけで直近のを再度、動作できるようにしてるものだと。
    • good
    • 0

http://d.hatena.ne.jp/architshin/touch/20110616/ …

の、↓↓の
記述などかも。
どのJDKをエクリプスが使うか。そのPathとかエクリプスにおしえてあげるような
●●●●
Java環境の設定を行う。

「Java」<「インストール済みのJRE」を選択し、「追加」をクリック。ウイザードが起動するので、JREの型画面で標準VMを選択し、「次へ」をクリック。JREの定義画面で「ディレクトリー」をクリックし、JAVA_HOMEで指定したディレクトリを選択する。JRE名に「jdk1.6.0_XX」(XXはインストールしたJDKのバージョンによる)が表示されていれば、「完了」をクリック。インストール済みのJREの表に表示されている、今追加された「jdk1.6.0_XX」のチェックボックスにチェックを入れる。
●●●
    • good
    • 0

ソースコード上でビルドエラーのマークはでてないよね。



たぶん、そんなのは確認してるだろうから。

どうやって実行してるの?

メインクラスって
main()メソッドある
クラスですよね。

実行とか、デバックで。
実行の構成
とか、
デバックの構成
とかで、
そのメインクラス指定してるんですよね?

特殊なところにあるの?

エクリプスで、
エクスプローラ形式のツリー構造で見れるとこで、
メインクラスのソース右クリックなどして、
それから、
実行の構成とか、
デバックの構成とか。
やってたら。

そのプロジェクトの、
そのメインクラスで、
動かすような構成で、
設定できたりするんだけど。

どうやって実行してるの?
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

QEclipseで、プロジェクト名のところに赤いバッテンのエラーマークが

Eclipseで、プロジェクト名のところに赤いバッテンのエラーマークがついていますが、どのソースファイルにも赤いエラーマークは無く、なぜエラーになっているのか分かりません。

どこでエラーが出ているのか調べる方法はあるでしょうか?

Aベストアンサー

ウインドウ → ビューの表示 → 問題
をクリックすれば問題のある箇所が表示されるはずです

QIOException ってどういうときに起こるのでしょうか?

IOException ってどういうときに起こるのでしょうか?

http://www.atmarkit.co.jp/fjava/rensai2/javaent12/javaent12.html
を見て勉強しています。

  catch ( IOException e) {
    System.out.println( "キーボードが故障しているのかもしれません" );
  }

と書いてあります。
ハード(キーボード)が故障しているのを Java のプログラムのレベル(ソフトウェア)で感知できるというのがよくわかりません。「

NumberFormatException の方はわかるのですが・・・

Aベストアンサー

現実的には、キーボードからの入力でIOExceptionが発生することは、
ほとんどあり得ないと思います。
そもそも、キーボードが故障していたとしても、
IOExceptionは投げられないでしょう。
「キーボードが故障しているのかもしれません」というのは、
その記事の著者が冗談で書いたのだと思います。

ではなぜ、try-catchを書かなくてはいけないのか?
InputStreamやBufferedReaderは、
データ入力を抽象化したものだからです。
実際の入力元はキーボードだったり、ファイルだったり、
ネットワーク接続だったりするわけですけど、
InputStreamは、その入力元の情報を持っていないので、
データを読み取る際は常に
IOExceptionをキャッチするコードを書かなくてはいけません。
たとえ、絶対にIOエラーが発生しないストリームだとしても。

さらに付け加えるなら、
そもそも「標準入力=キーボード」であるとは限りません。
(一般的にはキーボードであることが多いですが。)
Javaでは、
System.setIn(InputStream)
を呼び出して、標準入力を変えてしまうことができますし、
標準入力を指定してプログラムを実行することができるOSもあります。

追伸1:
例外をキャッチしたときは、
スタックトレースをプリントすることをおすすめします。
catch (IOException e) {
e.printStackTrace();
}

追伸2:
そのプログラムでIOExceptionを発生させる最も簡単な方法は、
readLine()を呼び出す前に
標準入力(System.in)を閉じてしまうことです。
System.in.close();

現実的には、キーボードからの入力でIOExceptionが発生することは、
ほとんどあり得ないと思います。
そもそも、キーボードが故障していたとしても、
IOExceptionは投げられないでしょう。
「キーボードが故障しているのかもしれません」というのは、
その記事の著者が冗談で書いたのだと思います。

ではなぜ、try-catchを書かなくてはいけないのか?
InputStreamやBufferedReaderは、
データ入力を抽象化したものだからです。
実際の入力元はキーボードだったり、ファイルだったり、
ネットワーク接...続きを読む

Qメインクラス○○.classが見つからなかったか…

JAVA 初心者です。

簡単な Hello World プログラムを作って実行しましたが、
「エラー: メインクラスHello.classが見つからなかったかロードできませんでした」
と表示されエラーになっています。

>javacc -version
javac 1.7.0_03
>java -version
java version "1.7.0_03"
Java(TM) SE Runtime Environment (build 1.7.0_03-b05)
Java HotSpot(TM) 64-Bit Server VM (build 22.1-b02, mixed mode)

>cd c:\Users\me\Documents\java_test
>javac Hello.java
としてコンパイルは通るのですが、
>java Hello.class
とすると、上記エラーメッセージが表示されます。

システム環境変数には
C:\glassfish3\jdk7\bin
を追加しました。

初歩的なところでつまずいていると思うのですが、ご教示のほどよろしくお願いします。

JAVA 初心者です。

簡単な Hello World プログラムを作って実行しましたが、
「エラー: メインクラスHello.classが見つからなかったかロードできませんでした」
と表示されエラーになっています。

>javacc -version
javac 1.7.0_03
>java -version
java version "1.7.0_03"
Java(TM) SE Runtime Environment (build 1.7.0_03-b05)
Java HotSpot(TM) 64-Bit Server VM (build 22.1-b02, mixed mode)

>cd c:\Users\me\Documents\java_test
>javac Hello.java
としてコンパイルは通るのですが、
>java Hello.class...続きを読む

Aベストアンサー

java Hello.class ではなく
java Hello としてみてください

Helloパッケージのclassクラスを実行しようとしましたが見つかりませんというエラーになってます。

Qフレーム分けされたJSPでのsubmit

JSP画面の上フレームがframeA,下がframeBで
上のフレームにsubmitボタンがある時、
下のフレームのフォームをsubmitしたい場合は
どのようにすればいいのでしょうか?

以下のようにしているのですが、うまく動いていません。
教えて下さい。

現在書いているframeAの処理
==================================================
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function doSubmit(){
parent.frameB.document.ManagementFORM.submit();
}
//-->
</SCRIPT>

<INPUT TYPE="submit" VALUE="登録確認画面へ" onClick="doSubmit()">
===============================================================

frameBのFORM
==============================================================
<FORM METHOD="POST" ACTION="ManagementProcessServlet" NAME="ManagementFORM">
==============================================================

JSP画面の上フレームがframeA,下がframeBで
上のフレームにsubmitボタンがある時、
下のフレームのフォームをsubmitしたい場合は
どのようにすればいいのでしょうか?

以下のようにしているのですが、うまく動いていません。
教えて下さい。

現在書いているframeAの処理
==================================================
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function doSubmit(){
parent.frameB.document.ManagementFORM.submit();
}
//-->
</SCRIPT>

<INPUT T...続きを読む

Aベストアンサー

#1です

>別の質問になっちゃいますが

>フレーム分けしている画面から次の画面を
>Servletから呼ぶときはforwardしただけだと
>上のフレームに表示されたりするとおもいますが
>どのようにすれば全画面に表示できますか?

<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function doSubmit(){
parent.frameB.document.forms[0].target = '_top';
parent.frameB.document.ManagementFORM.submit();
}
//-->
</SCRIPT>
でどうでしょうか?

QEclipse・プロジェクトで、フォルダをパッケージとして認識する

Eclipseを使っているのですが、
プロジェクトを立ち上げたときに、
普通フォルダをちゃんとパッケージとして認識してくれるのですが、パッケージのアイコンが普通のフォルダのアイコンの形をしたままでパッケージとして認識してくれないことがあります。

このとき、左のパースペクティブ(フォルダとかのツリー図)には.classファイルも.javaファイルと一緒に出てきます。

コンパイルはしているようですが、エラーの×印などが出てきません。


パッケージをパッケージとして認識してほしいので、アイコンがフォルダの絵からパッケージのアイコンになった状態にしたいのですが、どのようにすればよいでしょうか?

わかりにくい説明で申し訳ありませんが、もしわかりましたら教えていただけますと助かります。

Aベストアンサー

こんにちは。

左側に多分アイコンがあると思います。
(なければファイルにプラスマークがついたアイコンをクリックしてください)
それのファイルの絵がついているアイコン(リソース)と書かれている状態ですと、アイコンがフォルダで表示されますし、classファイルも一緒に表示されます。

Jというマークがついているアイコン(JAVA)を選択すると、ご希望のパッケージとして表示されます。

少し分かりにくくてすみません。
分からなかったらもう一度聞いてください。
頑張って分かりやすく説明できるようにしたいと思います

Qyyyymmddからyyyy/mm/ddへの変換

いつもお世話になっております。
Aと言う変数にはyyyymmddの値が入っていて
Aをyyyy/mm/ddにしてBの変数に入れたい場合の処理がわかりません。
調べたところ、SimpleDateFormatクラスと言うものを使えばよいと言うことが判明しました。
しかし、今まで使ったことがないのでよくわかりません。
変数Aと変数BはどちらもString型です。
ご教授お願い致します。

Aベストアンサー

 こんにちは。

 本当に変数aの中の文字列が厳密にyyyyMMddの形式のなっているのなら、普通に

String b = a.substring(0, 4) + "/" + a.substring(4, 6) + "/" + a.substring(6, 8);

 これでいいと思いますが、いったんDate型にする必要があったり、ちゃんと日付として認識できるか確かめる必要がある場合は、

String a = "20051029";

SimpleDateFormat formatter = (SimpleDateFormat)DateFormat.getDateInstance();
formatter.applyPattern("yyyyMMdd");
try {
  Date date = formatter.parse(a);
  formatter.applyPattern("yyyy/MM/dd");
  String b = formatter.format(date);
  System.out.println(b);
}
catch (ParseException ex) {
  System.out.println("解析失敗");
}

 こんな感じでいいんじゃないでしょうか。

 こんにちは。

 本当に変数aの中の文字列が厳密にyyyyMMddの形式のなっているのなら、普通に

String b = a.substring(0, 4) + "/" + a.substring(4, 6) + "/" + a.substring(6, 8);

 これでいいと思いますが、いったんDate型にする必要があったり、ちゃんと日付として認識できるか確かめる必要がある場合は、

String a = "20051029";

SimpleDateFormat formatter = (SimpleDateFormat)DateFormat.getDateInstance();
formatter.applyPattern("yyyyMMdd");
try {
  Date date = formatter.p...続きを読む

Q実行時のNoClassDefFoundErrorが解決できません

Windows で コマンドプロンプトから Java のプログラム実行時に
NoClassDefFoundError が発生する問題で
Web 等を参考にいろいろ対処してみたのですが、
どうしても解決しないでいます。

JDK, JRE は 1.6.0_01 を以下にインストールしており、
C:\Program Files\Java\jdk1.6.0_01
C:\Program Files\Java\jre1.6.0_01

C:\Program Files\Java\jdk1.6.0_01\bin にPATHを通しています。
CLASSPATH 環境変数は設定していません。
その上で、以下のことをやりました。

(1) HelloWorld.java というファイルを D:\test フォルダに作成する。
  内容は以下の通り。

HelloWorld.java
-------------------------------------------------------------------------------
package testpackage;

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
-------------------------------------------------------------------------------

(2) コマンドプロンプトで D:\test に移動し、以下を実行する。

javac HelloWorld.java
(正常終了し、HelloWorld.class が D:\test に作成されたことを確認)

(3) 引き続きコマンドプロンプトで、以下を実行する。(例外が発生)

java HelloWorld
-------------------------------------------------------------------------------
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld (wrong nam
e: testpackage/HelloWorld)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
-------------------------------------------------------------------------------

Web の情報を参考に

java -cp . HelloWorld
java -cp D:\test HelloWorld

も実行してみましたが、同様の結果でした。

(4) 試しに以下も実行してみました。

javap HelloWorld
-------------------------------------------------------------------------------
Compiled from "HelloWorld.java"
public class testpackage.HelloWorld extends java.lang.Object{
public testpackage.HelloWorld();
public static void main(java.lang.String[]);
}
-------------------------------------------------------------------------------


以上です。
これ以上の対処方法が全く思い当たらない状態なのですが、
原因のわかる方がいらっしゃいましたらお願いします。

Windows で コマンドプロンプトから Java のプログラム実行時に
NoClassDefFoundError が発生する問題で
Web 等を参考にいろいろ対処してみたのですが、
どうしても解決しないでいます。

JDK, JRE は 1.6.0_01 を以下にインストールしており、
C:\Program Files\Java\jdk1.6.0_01
C:\Program Files\Java\jre1.6.0_01

C:\Program Files\Java\jdk1.6.0_01\bin にPATHを通しています。
CLASSPATH 環境変数は設定していません。
その上で、以下のことをやりました。

(1) HelloWorld.java というファ...続きを読む

Aベストアンサー

Javaのクラスファイルは、packageの階層と同じディレクトリ構造にしないといけません。

質問者さんの例なら、D:\testの下にtestpackageというディレクトリを作り、
その中にコンパイルしたHelloWorld.classを入れます。
そして、D:\test からコマンドプロンプトで

java testpackage.HelloWorld
もしくは
java testpackage/HelloWorld

で起動できます。

QEclipseでクリーンが出来ない

いつもお世話になっております。
当方、Eclipse3.2で開発を行っておりますが、CVSからチェックアウトしたあるプロジェクトだけ、クリーンが出来ずに困っております。
現象としては、プロジェクトのクリーンを実行すると一瞬で終わってしまい、コンパイルが行われていない様です。
また、プロジェクトフォルダのみに×がついていて中身は全てOKな状態です。
先に進めず困っております。
どなたかお助け下さい。

Aベストアンサー

問題ビューがEclipse上に存在しますか??
存在しない場合、メニューバーより
「ウインドウ」→「ビューの表示」で「ビューの表示」ダイアログが起動します。
「その他」→「基本」→「問題」を選択し、「OK」ボタンを押下して下さい。

その問題ビューに主題のプロジェクトの問題が表示されていると思うので、それを教えてください。

QEclipse「リフレッシュ」と「クリーン」の違い

Eclipseでプロジェクト「リフレッシュ」と「クリーン」がありますが、どう違うのでしょうか?

■質問背景
・Androidでエミュレータ内容が切り替わらないときがあるのですが、キャッシュか何か関係あるのかな、と思い質問しました

Aベストアンサー

Androidエミュレータはわかりません。
Eclipseでは、下記のことを指しています。
リフレッシュ→OSのファイルシステムと、Eclipseのワークスペースのファイル構造を同期すること。
クリーン→クリーンは、クリーンビルドのことでjavaのclassファイル等の成果物を削除し、コンパイルし直すこと。

QEclipseのアンインストールの仕方

 JAVA初心者です、宜しくお願いします。

 Win 7です。
 現在、Eclipse3.1を使っていますが、今度Eclipse3.4にVersionUpしようと考えています。
 Eclipse3.1はAll-In-Oneというパッッケージ?からインストールしました。
 Eclipse3.1をアンインストールしようとしても、「コントロールパネル>プログラム>プログラムのアンインストール」を見ても、Eclipse3.1は表示されていません。

 「コンピューター>C>ProgramFiles>All-In-One-Eclipse」というフォルダーはありますが、
そのフォルダーの中にも、アンインストーラー?らしきものも見当たりません。
 どのようにしてアンインストールしたらいいのでしょうか。
 「全てのプログラム」にも表示されていません。
 (インストール時にそのような設定にしたような気がします。)

 「All-In-One-Eclipse」というフォルダーを削除するとPCに問題が起こりそうな気がします。
 このまま、Eclipse3.4をインストールしても問題が起こりそうな気もします。
 このような場合には、どのようにしたらよいのでしょうか。

 JAVA初心者です、宜しくお願いします。

 Win 7です。
 現在、Eclipse3.1を使っていますが、今度Eclipse3.4にVersionUpしようと考えています。
 Eclipse3.1はAll-In-Oneというパッッケージ?からインストールしました。
 Eclipse3.1をアンインストールしようとしても、「コントロールパネル>プログラム>プログラムのアンインストール」を見ても、Eclipse3.1は表示されていません。

 「コンピューター>C>ProgramFiles>All-In-One-Eclipse」というフォルダーはありますが、
そのフォルダーの中にも、...続きを読む

Aベストアンサー

Eclipseにはインストールもアンインストールもありません。
zipを解凍すれば直ぐに使えます。消すときはフォルダごと消すだけです。

様々なバージョンを同時に使うことも可能ですし、
設定を変えた複数のEclipse の同時利用も可能です。
フォルダが異なれば大丈夫なんです。

私は1台のマシンに Indigo、Ganymede と Juno を入れてます。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング