• ベストアンサー

コンパイル成功後の当エラーからの回復方法が調べられませんでした。

みなさん、こんにちわ。 仕事で必要性を感じたため、 5月よりjavaの勉強を開始した者です。 まったくの素人ですが、宜しくお願い致します。 「O'REILLY(オラーリー)」の本で、JAVAの勉強しておりまして、 今回も「O'REILLY(オラーリー)」の本にも掲載されていたプログラムと 同一のプログラムファイルを自分の環境にも作成し、 無事、javacでのコンパイル作業を成功させました。 その後、当プログラムを実行したときに、 下記エラーが表示され、 調べ方が悪いせいか、 いまいち解決に至る方法をWEBで見つけられず困ってしまい、 ご相談させてもらう事にしました。 アドバイスいただけると、とてもありがたいです。 ■プログラム内容は以下URLのものと同一になります。 http://www.cafeaulait.org/books/jnp2e/examples/15/BinarySaver.java ■エラー内容は以下の通りです。 [root@hostname test]# java SourceViewer http://www.oreilly.com Exception in thread "main" java.lang.NoClassDefFoundError: SourceViewer Caused by: java.lang.ClassNotFoundException: SourceViewer at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) 的外れなのかもしれませんが、 「javaとjavacのバージョンの問題なのか?」とも感じ、 以下の通りで、 異なるバージョンは使用していない旨確認できました。 [root@hostname test]# javac -J-version  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ java version "1.6.0_06" Java(TM) SE Runtime Environment (build 1.6.0_06-b02) Java HotSpot(TM) Client VM (build 10.0-b22, mixed mode, sharing) [root@hostname test]# java -version  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ java version "1.6.0_06" Java(TM) SE Runtime Environment (build 1.6.0_06-b02) Java HotSpot(TM) Client VM (build 10.0-b22, mixed mode, sharing) CLASSPATHを確認しましたが、 やはり変更されておらず、 今までと同様でした。 上記同様に、 以下URLにあるプログラムについても、 実行してみましたが、 コンパイルまでは正常に完了し、 プログラムを実行しようとすると、 同じエラーが出てきました。 http://www.cafeaulait.org/books/jnp2e/examples/15/BinarySaver.java

  • Java
  • 回答数3
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • jyugemu55
  • ベストアンサー率68% (11/16)
回答No.2

BinarySaverクラスのmainメソッドが見つからないと言っているようです。 ・カレントディレクトリにBinarySaver.classファイルはありますか? ・ソースコード内のクラス名、mainメソッド名等に、スペルミスはありませんか? それから、 環境変数にクラスパスが設定されている場合、カレントディレクトリは(指定しなければ)クラスパスに含まれないような気がします。(記憶があいまいですが) したがって、 java -classpath ./ BinarySaver http://www.oreilly.com とかすると動くかもしれません。 これでだめならごめんなさい。

c_iamok
質問者

お礼

jyugemu55さん >・カレントディレクトリにBinarySaver.classファイルはありますか? ==> classファイルありました! >・ソースコード内のクラス名、mainメソッド名等に、スペルミスはありませんか? ==> 念入りに確認しましたが、 問題ないことが確認できました! >java -classpath ./ BinarySaver ​http://www.oreilly.com​ >とかすると動くかもしれません。 ありがとうございます! 教えていただいた方法でjava(BinarySaver.)を実行したら、 きちんと、動作しました! 以下の警告というか表示がでましたが、 問題ない内容のものだと判断しまして、 「java.util.logging」でレベルを修正したら、 表示も出なくなり、 対象バイナリファイルが対象ディレクトりに保存されている事を 確認できました。 低レベルなのかもしれませんが、すごく嬉しいです! ありがとうございました。 ___________________________________________________________________ Bad level value for property: .level Bad level value for property: com.xyz.foo.level  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

その他の回答 (2)

  • HarukaV49
  • ベストアンサー率53% (48/89)
回答No.3

まずは、Eclipse等の統合開発環境を入手して、 その上でプログラミングをすることをお勧めします。 そうすれば、今回つまずいているようなレベルの問題は、 つまずく前に解決していると思います。

c_iamok
質問者

お礼

HarukaV49さん アドバイスありがとうございます! Eclipseも試してみたいと丁度考えていました! いい機会ですので、 使ってみたいと思います。 御意見ありがとうございました。

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.1

BinarySaverというプログラムは、コンパイル、実行ともに正常です。 エラーメッセージはSourceViewerという、当プログラムとまったく無関係なクラスを挙げていますね。 これは、早すぎた夏の夜の怪談ですね。 > その後、当プログラムを実行したときに、 > 下記エラーが表示され、 本当は何をしたのか、正直に白状しなさい! (もちろんこれはジョーク)

c_iamok
質問者

お礼

_ranco_さん ご回答いただきまして、 ありがとうございました! 質問させていただきましたc_iamokです。 すいません。 記載内容が一部間違えておりましたです。 似ていたもので、 違うプログラム実行時のエラー表示を 記載してしまいました。 ■実際のエラー内容は以下内容です。 [root@hostnemae test]# java BinarySaver http://www.oreilly.com Exception in thread "main" java.lang.NoClassDefFoundError: BinarySaver Caused by: java.lang.ClassNotFoundException: BinarySaver at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) ■最初に記載させていただきましたエラーは、  似たプログラムなんですが、  以下URLのプログラムでした。 http://www.cafeaulait.org/books/jnp2e/examples/07/SourceViewer.java

関連するQ&A

  • JAVA twitter4j エラー

    JAVA twitter4j エラー JAVA初心者です。 http://d.hatena.ne.jp/regeek/20100511/1273599348 で公開されているソースなのですが、コンパイルはとおるのですが、 実行する時に以下のようなエラーをはき、困っています。 ############################## 上のサイトからソースをコピペする(現在のディレクトリをnowとします) /now/Application.java /now/LoginDialog.java /now/TimeLine.java twitter4j-2.1.2.jarを /now/twitter/twitter4j-2.1.2.jarに置く $javac -classpath twitter/twitter4j.jar *.java $java Application ###←ここで以下のようなエラーがでます Exception in thread "main" java.lang.NoClassDefFoundError: twitter4j/TwitterException Caused by: java.lang.ClassNotFoundException: twitter4j.TwitterException at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:321) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:334) 環境は $java -versionで以下の通り java version "1.6.0_18" OpenJDK Runtime Environment (IcedTea6 1.8) (6b18-1.8-0ubuntu1) OpenJDK Server VM (build 14.0-b16, mixed mode) $javac -versionで以下の通り javac 1.6.0_18 です。 個人的には sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) とあるので、これはもしやUbuntuのOpenJDK Runtimeではだめなのか? と考えているのですが・・・ どなたか解決方法をご教授頂けないでしょうか。よろしくお願いします。

    • ベストアンサー
    • Java
  • java実行時のメッセージについて

    50歳にてjavaを勉強しようとしているものです。 javaの本より例題を作成してみたのですが、うまくいきません。 javaをインストールしてjavacが正常でいざ実行した際、以下のメッセージが表示されました。何の意味かさっぱりわかりません。このサイトで質問するレベルではないかと思いますが、アドバイスいただければ幸いです。 作成したプログラムは class hello { public static void main(String[] args) { System.out.println("こんにちは"); } } javac ではエラー表示なし → C:\javabook\part1>javac Hello.java C:\javabook\part1> これを実行すると、 C:\javabook\part1>java Hello Exception in thread "main" java.lang.NoClassDefFoundError: Hello (wrong name: he llo) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) at java.lang.ClassLoader.defineClass(ClassLoader.java:616) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:14 1) at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) at java.net.URLClassLoader.access$000(URLClassLoader.java:58) at java.net.URLClassLoader$1.run(URLClassLoader.java:197) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) Could not find the main class: Hello. Program will exit. と表示されます。 何がエラーとなっているのでしょうか?

    • ベストアンサー
    • Java
  • 明示的にコンパイル

    java eclipse3.5を使ってプログラミングの勉強をしています。 あるプログラムを実行するために、事前にいくつかのプログラムを 明示的にコンパイルしなくてはいけないのですが、明示的にコンパイルする方法が分かりません。 あるサイトを見たら、【プロジェクト】ー>【すべて再ビルド】を 選択すればよいとかかれていたのでやってみたのですが、次のような エラーが出てしまいます。 Exception in thread "main" java.lang.ClassNotFoundException: EchoProtocolFactory 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) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at socket_110.ThreadMain.main(ThreadMain.java:22) このエラーを取り除くには、どうすればよいのでしょうか? 分かる方お願いします。

  • データベースに接続できません

    データベースに接続できません java初心者です eclipseで開発を行っているのですが、どうもエラーがでてきて接続できません よろしくおねがいします エラー内容 Exception in thread "main" java.lang.NoClassDefFoundError: DataBase Caused by: java.lang.ClassNotFoundException: DataBase at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:315) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:330) at java.lang.ClassLoader.loadClass(ClassLoader.java:250) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:398)

  • 外部ライブラリについて

    Java初心者です・・。 eclipse上で、以下のソースで実行したところ、エラーになりました。 外部のライブラリを使用しているからかと思い、ビルド・パスを設定しました。 しかし・・・まだエラーが表示されます・・・。 どなたかご存知の方・・・アドバイスをお願いします。 [ソース] import javax.swing.*; import java.awt.*; class FusenExec { static public void main(String[] args) { String msg =JOptionPane.showInputDialog ("メッセージを入力して下さい。"); Dodai fusen = new Dodai(); JLabel label = new JLabel(msg); label.setOpaque(true); label.setBackground( Color.YELLOW); fusen.add(label); fusen.setSize(300, 50); fusen.setVisible(true); } } [エラー内容] Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:620) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) at java.net.URLClassLoader.access$100(URLClassLoader.java:56) at java.net.URLClassLoader$1.run(URLClassLoader.java:195) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at FusenExec.main(FusenExec.java:10)

    • ベストアンサー
    • Java
  • CentOS4における自動起動について

    お世話になります。 CentOSにてプログラムを自動起動させたいと思っています。 rc*.dフォルダにスクリプトを作成し、サンプルプログラムが 動作することまでは確認できましたが、log4jを組み込んだところ プログラムが実行できなくなってしまいました。 #スクリプトをコマンドで実行すると、問題なく実行できました。 どなたかご教示ください。よろしくお願いします。 <エラー箇所> // 設定ファイルの読み込み DOMConfigurator.configure(パス + "log4j.xml"); <エラー内容> java.lang.ClassNotFoundException: org.apache.log4j.xml.DOMConfigurator at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) 【動作環境】 CentOS4 Java6 log4j 1.2.15

    • ベストアンサー
    • Java
  • RMI

    ここのサイト通りの手順でやったのですが http://www.hellohiro.com/rmi.htm C:\JavaHello\RMI>java -Djava.security.policy=java.policy -Djava.rmi.server.codebase=file:///C:\JavaHello\RMI\ HelloWorldObj を実行するところで Exception in thread "main" java.lang.NoClassDefFoundError: Files\Java\RMI Caused by: java.lang.ClassNotFoundException: Files\Java\RMI\ at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) Could not find the main class: Files\Java\RMI\. Program will exit. このようなエラーメッセージがでて解決できません。 エラーをなくす方法を教えてください!

  • NoClassDefFoundErrorの解決方法

    netbeansでjava.lang.NoClassDefFoundErrorの解決方法を教えて下さい。 NetBeans IDE 7.0を使ってJAVAで、「Hell World !」を表示するものを 作りました。 ソースコード public class HelloWorld { public static void main(String args[]) { System.out.println("Hello World!"); } } NetBeansで、 「実行]-「ファイルを実行」とすると、「Hello World!」と表示されます。 正しく動きます。 しかし、 「実行」-「プロジェクトを実行」とすると、以下のエラーメッセージがでます。 java.lang.NoClassDefFoundError: helloworld/HelloWorld Caused by: java.lang.ClassNotFoundException: helloworld.HelloWorld at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) Could not find the main class: helloworld.HelloWorld. Program will exit. Exception in thread "main" Java Result: 1 また、コマンドラインから以下の様に実行しても、実行してもエラーとなります。 C:\Program Files\Java\jdk1.6.0_25\bin>java.exe -jar C:\java\HelloWorld\dist\HelloWorld.jar Exception in thread "main" java.lang.NoClassDefFoundError: helloworld/HelloWord Caused by: java.lang.ClassNotFoundException: helloworld.HelloWorld at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) Could not find the main class: helloworld.HelloWorld. Program will exit. そこで、 ソースコードに、「package helloworld;」の記述を行いと期待した結果となりました。 NetBeansで、「実行」-「プロジェクトを実行」 コマンドラインから実行 しても、「Hello World!」と表示されます。 ソースコード package helloworld; public class HelloWorld { public static void main(String args[]) { System.out.println("Hello World!"); } } 何故、 「package helloworld;」の記述の追加で動いたのでしょうか。 あるとないとで、どう違うのでしょうか。 「package helloworld;」は、何を意味しているのでしょうか。 環境は、 JDK1.6(jdk1.6.0_25) クラスパスは未設定。

  • java.lang.NoClassDefFoundErrorというエラーが出ます その2

    ご質問させて頂きます。 java.lang.NoClassDefFoundErrorというエラーが出ます http://oshiete1.goo.ne.jp/kotaeru.php3?q=952983 の続きの質問なんですが・・・。 次のような実行時エラーが出ます。 java.lang.ClassNotFoundException: org.postgresql.Driver at java.net.URLClassLoader$1.run(URLClassLoader.java:198) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:186) at java.lang.ClassLoader.loadClass(ClassLoader.java:299) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265) at java.lang.ClassLoader.loadClass(ClassLoader.java:255) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:140) at sample1.main(sample1.java:8) そこで、 >PostgreSQLのODBCドライバをCLASSPATHに含めていますか? >postgresql.jarとかpg72jdbc2.jarといったファイルがどこかにあるはずです. と、回答者の方からアドバイスをして頂きました。 ところが、postgresql.jarとかpg72jdbc2.jarもありませんでした。 ネットで検索をしたところ、「postgresql743.jar」というのがありましたので /usr/javaに格納しました。 /etc/profileに、 export PATH=$PATH:/usr/java export CLASSPATH=$CLASSPATH:/usr/java. と追加しました。 しかし、同じエラーが出てします。 対処方法をご存じでしたら、ご教授して頂けたら幸いです。

    • ベストアンサー
    • Java
  • javaでscalaのクラスを使う

     Scala初心者です^^  Scalaで作ったクラスをJavaで使おうとしています.  しかしなかなかうまくいかなくて…  ソースを下に書いておきます. [ap/hello.scala] class hello(str2: String){ val str = str2 def say(){ println(str) } } [ap/start.java] public class start{ public static void main(String[] args){ hello h = new hello("Hello!"); h.say(); } }  helloクラスのコンストラクタを用いて指定した文字列を helloクラスのsayメソッドで標準出力するだけの簡単なクラスなのですが, うまく実行できず… Exception in thread "main" java.lang.NoClassDefFoundError: ap/start/class Caused by: java.lang.ClassNotFoundException: ap.start.class at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) Kazus-MackBookPro:ScalaLearning macuser$ java ap/start Exception in thread "main" java.lang.NoClassDefFoundError: ap/start (wrong name: start) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) at java.lang.ClassLoader.defineClass(ClassLoader.java:616) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) at java.net.URLClassLoader.access$000(URLClassLoader.java:58) at java.net.URLClassLoader$1.run(URLClassLoader.java:197) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) というエラーが出てしまいます.    どこが悪いかわかる方いらっしゃいませんか?  それとも,JavaではScalaで作った.classファイルは使うことができないのでしょうか?  Scalaはまだ覚えて2週間なので,まだ完全に理解できていません><    よろしくお願いします