• ベストアンサー

Lunux で Java をするには?

CLASSPATH=.:/root/workspace/test:export CLASSPATH と環境設定し /root/workspace/test/test に Test0.java: package test; class SayHello { public void method() { System.out.println("Hello World!"); } } と SayHello.java: package test; public class Test0 { public static void main(String[] args) { SayHello sh=new SayHello(); sh.method(); } } を作り javac Test0.java SayHello.java をし(成功) java Test0 をしたのですが [root@Prime test]# java Test0 Exception in thread "main" java.lang.NoClassDefFoundError: loaded class Test0 was in fact named test.Test0 at java.lang.VMClassLoader.defineClass(libgcj.so.7) at java.lang.ClassLoader.defineClass(libgcj.so.7) at java.security.SecureClassLoader.defineClass(libgcj.so.7) at java.net.URLClassLoader.findClass(libgcj.so.7) at java.lang.ClassLoader.loadClass(libgcj.so.7) at java.lang.ClassLoader.loadClass(libgcj.so.7) at java.lang.Class.forName(libgcj.so.7) at gnu.java.lang.MainThread.run(libgcj.so.7) [root@Prime test]# となりうまくいかないのですが対策を教えてください。

  • reiman
  • お礼率73% (794/1076)
  • Java
  • 回答数3
  • ありがとう数4

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

  • ベストアンサー
  • UKY
  • ベストアンサー率50% (604/1207)
回答No.2

java コマンドに渡す引数はパッケージ名を含めたクラスの名前です。パッケージ名とクラス名の間はスラッシュではなくドットで区切ります。 java test/Test0 ではなく java test.Test0 でプログラムが実行できるはずです。

reiman
質問者

お礼

ありがとうございます。 無事に動きました。

その他の回答 (2)

  • yuchi-co
  • ベストアンサー率60% (29/48)
回答No.3

パッケージ名を含めたクラス名で指定なので 「java test.Test0」 ではないでしょうか。

reiman
質問者

お礼

ありがとうございました。 既に同じ回答を得ていたのですが動きました。

回答No.1

package testとしているので cd .. java test/Test0 としたらうごくはずです。 追加ですが、プログラムはsuper userで作らないほうがいいと思います。 おそらく初めてlinuxを使っていると思うのですが、Windowsと違ってmaltiuser対応のOSなので自分の権限で動かすようにつくったほうがいいと思います。参考までに。わたしも始めはそうでしたので。

reiman
質問者

お礼

失礼しました。 入力ミスがありました。 修正後やりましたが以下のようにうまくいきませんでした。 [root@Prime test]# cd /root/workspace/test [root@Prime test]# pwd /root/workspace/test [root@Prime test]# CLASSPATH=.:/root/workspace:/root/workspace/test [root@Prime test]# export CLASSPATH [root@Prime test]# javac test/Test0.java test/SayHello.java [root@Prime test]# java test/Test0 Exception in thread "main" java.lang.NoClassDefFoundError: test/Test0 at gnu.java.lang.MainThread.run(libgcj.so.7) Caused by: java.lang.ClassNotFoundException: test/Test0 at java.lang.Class.forName(libgcj.so.7) at gnu.java.lang.MainThread.run(libgcj.so.7) [root@Prime test]#

reiman
質問者

補足

ありがとうございます。 次からメンバでやろうと思いました。 御指摘の通りやってみると以下の様になり やはりエラーが出ます。 因みにeclipseから実行する限りは動いています。 何か他に手順が抜けていないでしょうか? [root@Prime test]# cd /root/workspace/test [root@Prime test]# pwd /root/workspace/test [root@Prime test]# CLASSPATH=.:/root/workspace:/root/workspace/test:/root/workspace/test/test [root@Prime test]# export CLASSPATH [root@Prime test]# javac test/test0.java test/SayHello.java [root@Prime test]# java test/test0 Exception in thread "main" java.lang.NoClassDefFoundError: test/test0 at gnu.java.lang.MainThread.run(libgcj.so.7) Caused by: java.lang.ClassNotFoundException: test/test0 at java.lang.Class.forName(libgcj.so.7) at gnu.java.lang.MainThread.run(libgcj.so.7) [root@Prime test]#

関連するQ&A

  • 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週間なので,まだ完全に理解できていません><    よろしくお願いします

  • LinuxでJava環境

    LinuxでJavaを使った開発をしたいのですが、環境設定でつまずいてしまい 、困っております。 環境 OS:windowsとUbuntuのデュアルブートです。 状況 javaを、 sudo update-alternatives --config java でインストールしましたが、コンパイルができません。 ファイルはデスクトップに置き、java ****.javaで実行しましたが、 Exception in thread "main" java.lang.NoClassDefFoundError: test/java/java Caused by: java.lang.ClassNotFoundException: test.java.java 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) のエラーが出てしまいます. また、eclipseをインストールして、画面を開こうとしても、すぐに消えてしまいます. Linuxの挙動がまったくわかりません。 もしかすると、rootでアレコレコマンドを試したから,再起不能の状態になっているのではないかと危惧しております。 Linuxの知識はゼロの初心者です。 そうかお助けをお願い致します。

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

    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
  • 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を勉強しています。本を参考にして、下記のようなアプレットを書いたのですが、さらにその下のようなエラー(?)が表示されてしまって、画像が表示されません。もしこれだけの情報で見当がつきましたら、よろしくお願いします。 import java.applet.Applet; import java.awt.Graphics; import java.awt.Image; public class main extends Applet{ Image img; public void init(){ img = getImage(getDocumentBase(), "test.jpg"); } public void paint(Graphics g){ g.drawImage(img,0,0,this); } } java.lang.UnsupportedClassVersionError: main (Unsupported major.minor version 49 .0) at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:537) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12 3) at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:157) at java.lang.ClassLoader.loadClass(ClassLoader.java:289) at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:123) at java.lang.ClassLoader.loadClass(ClassLoader.java:235) at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:561) at sun.applet.AppletPanel.createApplet(AppletPanel.java:617) at sun.applet.AppletPanel.runLoader(AppletPanel.java:546) at sun.applet.AppletPanel.run(AppletPanel.java:298) at java.lang.Thread.run(Thread.java:534)

    • ベストアンサー
    • Java
  • FirefoxでJava Appletが表示できません

    掲題のとおり、IE7で表示されるJava AppletがFirefoxで表示できません。 各Javaコンソール出力は以下の通りで、FirefoxのJRE versionが 1.5.0_12になっていることが原因と思いますが、FirefoxのJRE versionをIEと同じ1.6.0_05にする方法を教えてください。 == Firefox 2.0 の Javaコンソール出力 === Java Plug-in 1.5.0_12 使用中の JRE のバージョン 1.5.0_12 Java HotSpot(TM) Client VM java.lang.UnsupportedClassVersionError: Bad version number in .class file at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at sun.applet.AppletClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.applet.AppletClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.applet.AppletClassLoader.loadCode(Unknown Source) at sun.applet.AppletPanel.createApplet(Unknown Source) at sun.plugin.AppletViewer.createApplet(Unknown Source) at sun.applet.AppletPanel.runLoader(Unknown Source) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source) == Internet Explorer 7 の Javaコンソール出力 === Java Plug-in 1.6.0_05 使用中の JRE のバージョン 1.6.0_05 Java HotSpot(TM) Client VM

    • ベストアンサー
    • Java
  • 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.lang.NoClassDefFoundError。。。

    どうぞ知恵をお貸しください。 ・jdk-1.5.0.16 ・mysql-4.0.26-win32 ・mysql-connector-java-3.1.14 ・eclipse 3.2.0 をダウンロード、インストールしてjavaの勉強を行っています。 コマンドプロンプトよりコンパイルを成功した場合は実行時に下記のエラーが、 Exception in thread "main" java.lang.NoClassDefFoundError コンパイルに失敗した場合は「読み込めません」のエラーが出力されます。 環境変数でCLASSPATHも設定してありますが、あえて実行時にclasspathを指定しても試みてみましたがエラーは変わりません。 何が原因なのでしょうか? どうぞご指導をよろしくお願いします。 エラー全文 Exception in thread "main" java.lang.NoClassDefFoundError: sample (wrong name: mypackage/sample) 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$100(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)

  • jdbcを利用したpostgres接続

    Solaris9/02 + PostgreSQL7.2.3 で構築しました。 java -version 1.4.0_01 です。 PostgreSQL の Configure時に --with-javaオプションを付け、 /usr/local/pgsql/share/java 配下にpostgres.jarが出来ました。 /home/ssm3u の .cshrcに setenv JAVA_HOME /usr/j2se setenv CLASSPATH /usr/local/pgsql/share/java/postgres.jar:. (postgres.jarファイルとカレント) を追加し、 % vi FirstDBAccess.java import java.sql.*; public class FirstDBAccess {  public static void main(String argv[]) {   try {    Class.forName("org.postgresql.Driver");   } catch (Exception e) {    e.printStackTrace();   }  } } % javac FirstDBAccess.java % java FirstDBAccess と実行すると、 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:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265) at java.lang.ClassLoader.loadClass(ClassLoader.java:262) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:130) at FirstDBAccess.main(FirstDBAccess.java:5) となります。 上記エラーになるのは CLASSPATH設定がおかしい時と思うのですが、 何がおかしいのかわかりません。 Oracleとか他のDBの時はあっさりできたのに・・・ 他に設定が必要なのでしょうか? 見直せば良い点などお教えいただければ助かります。

  • eclipse java oracle 接続について

    同じような質問があり、試してみたのですができませんでした 初心者なので、勉強不足だとは思っていますがどうかヨロシクお願いします Exception in thread "main" java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver 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 Oracletest.main(Oracletest.java:11) というエラーがでています オラクルのドライバが探せていないのはわかるのですがPATHも通しているので手詰まりになってしまいました ちなみに オラクル 10g java 1.5.0_09 を使っています 詳しい設定方法を教えて下さると助かります よろしくお願いします

専門家に質問してみよう