クラスTest4を検出およびロードできませんでした

このQ&Aのポイント
  • クラスTest4を検出およびロードできませんでした。コンパイルはできたが実行時にエラーが出ました。
  • JavaのArraysクラスを利用せずに配列の要素を表示しようとしたが、エラーが発生しました。
  • 原因はClassNotFoundExceptionで、Test4クラスが見つからないためです。
回答を見る
  • ベストアンサー

クラスTest4を検出およびロードできませんでした

import java.util.Arrays; public class Test4{ public static void main(String[] args){ int [] array = {298,827,8348,29,892,327,8,9,2,809,32}; System.out.println("配列の要素を表示します。"+ Arrays.toString(array)); System.out.println("Arraysクラスを利用しないと、" + array + "となってしまう"); } } kouzou@GD348ZZD9:/WORK$ java Test4 エラー: メイン・クラスTest4を検出およびロードできませんでした 原因: java.lang.ClassNotFoundException: Test4 コンパイルはできたのですが、実行でエラーが出ました。 何故でしょうか? 教えてください。 ご回答のほど宜しくお願い申し上げます。

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

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.3

回答No.1に誤りがありました。 カレントディレクトリにTest4.classファイルが有ればファイルの先頭に./を付ける必要がありませんでした。 若しかして、sudo mkdir /WORK でルート直下にディレクトリを作成していませんか?(アクセス権の確認が必要になるでしょう) Windows OSとUNIX系OSではファイル管理やユーザーの権限が異なりますのでCUI(ターミナル=端末)での操作に注意が必要です。

jump7799
質問者

お礼

ご回答誠にありがとうございます。

その他の回答 (2)

  • wormhole
  • ベストアンサー率28% (1619/5653)
回答No.2

>コンパイルはできたのですが、実行でエラーが出ました。 本当にコンパイルはできたのですか? できているのでしたらTest4.classがあるはずですが、それはどこにありますか?

jump7799
質問者

お礼

うーん。 チョット、インターネットから書籍に勉強道具を変えたので、 同じjavaをやっているのか?と言うほど戸惑っていたので 判らなくなりました。 ご回答誠にありがとうございます。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.1

>何故でしょうか? UNIX系OSでの実行にはクラスの所在を明示しないと実行できないようです。 カレントディレクトリにクラスが存在している場合は次のようにします。 java ./Test4 ./はカレントディレクトリを意味します。 ルートからのフルパスで指定しても良いでしょう。

jump7799
質問者

お礼

ご回答誠にありがとうございます。 暫く参考書を読んでいます。

関連するQ&A

  • 実行方法を教えて下さい。

    いつも教えていただき大変お世話になっております。 下記コードの実行方法を教えて頂きたいのです。 論理的に理解したいと思います。 大変恐れ入ります。 お手数ですが、解説もお願い致します。 冒頭の3行が普通と違うのです。 色々検索致しましたが、理解できません。 ご回答のほど宜しくお願い申し上げます。 package sample.sample10; import static java.util.Arrays.*; import java.util.Arrays; public class Sample10_11 { public static void main(String[] args) { int[] array = {298, 827, 8348, 29, 892, 327, 8, 9, 2, 809, 32}; System.out.println("配列の要素を表示します。" + Arrays.toString(array)); sort(array); System.out.println("配列の要素を表示します。" + Arrays.toString(array)); } } kouzou@GD348ZZD9:/WORK$ javac Sample10_11.java kouzou@GD348ZZD9:/WORK$ java Sample10_11 エラー: メイン・クラスSample10_11を検出およびロードできませんでした 原因: java.lang.NoClassDefFoundError: sample/sample10/Sample10_11 (wrong name: Sample10_11)

    • ベストアンサー
    • Java
  • サンプルプログラムのエラー

    お世話になります。 「Eclipseで学ぶはじめてのJava」と言う本を購入しました。その本のSample10_10において、 Exception in thread "main" java.lang.Error: コンパイル問題が未解決です。 at Sample10_10.main(Sample10_10.java:8) と表示されてエラーになります。Eclipseの設定なのかもしれませんが対処法が分らないので先に進むことができません。 ソフトバンククリエイティブの問い合わせに質問しても全然取り合ってもらえず困っています。 package sample.sample10; import java.util.Arrays; public class Sample10_10 { public static int a; public static void main(String[] args) { int[] array = { 298, 827, 8348, 29, 892, 327, 8, 9, 2, 809, 32 }; System.out.println("配列の要素を表示します。" + Arrays.toString(array)); System.out.println("Arraysクラスを利用しないと、" + array + "となってしまう"); } }

    • ベストアンサー
    • Java
  • 内部クラスのインスタンスを動的に取得したい

    class test {   public test(String str){     try{       Class c = Class.forName("test$TESTSUB" + str);       c.newInstance();  // ココでエラー     }catch(Exception e){       e.printStackTrace();     }   }   public static void main(String[] args){     new test(args[0]);   }   class TESTSUB1 {     public TESTSUB1(){       System.out.println("# " + toString());     }   }   class TESTSUB2 {     public TESTSUB2(){       System.out.println("# " + toString());     }   } } 上記のようなコードにより、内部クラスのインスタンスを 動的に得たいと思っていますが、エラーとなってしまいます。 エラー回避方法、または他にいい方法がありましたら、 ご教示のほどよろしくお願いいたします。

    • ベストアンサー
    • Java
  • ArrayクラスとtoStringについて

    問題集で次のプログラムを見掛ました。 public class Main{  public static void main(String args[]){   int[] array = new int[0];   System.out.println(array);  } } これを実行するとprintlnメソッドで toStringメソッドが呼び出されますが、 ArrayクラスはObjectクラスを継承しているため、 toStringメソッドもObjectクラスから継承されているので、 結果として、配列の要素数が0であっても、 エラー等が発生せずハッシュコードが表示される、ということです。 ObjectクラスのtoStringメソッドが ハッシュコードを返すものであるのは理解できます。 でも、なぜ要素数が1以上で何かしらの要素が存在する場合は、 ハッシュコードが返らないのでしょうか? 詳しい方、解説をお願いします。

  • Java Compilerクラスについて

    import java.lang.Compiler; //http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/Compiler.html class Compile{ public static void main(String[] args) throws ClassNotFoundException{ Compiler com = null; System.out.println( com.compileClass("testCompile"); } } class testCompile{ public static void main(String args[]){ System.out.println("O========K========!!!"); } } Compilerクラスの使用方法がいまいちわかりません。 上記のクラスの間違いを指摘していただきたいです。

    • ベストアンサー
    • Java
  • [JAVA]エラーが解決できません。

    JAVAのエラーが解決できません。 ?,[,],(,)をreplaceAllを用いて置換したいと下記のようなプログラムを書いたのですが正常に動作しません。 また、Unicodeに置き換えても見たのですが、うまく動作しませんでした。 そして、排出されたエラーは下記の通りです。 文中にある、?などの記号を置換したいのですが何か良い方法は無いでしょうか? 何卒、ご教授、宜しくお願い致します。 テストコード>>> class Test { public static void main(String args[]) { System.out.println(args[0].replaceAll("?", "置換?")); System.out.println(args[0].replaceAll("[", "置換[")); System.out.println(args[0].replaceAll("(", "置換(")); } } エラー>>> Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '?' near index 0 ? ^ at java.util.regex.Pattern.error(Unknown Source) at java.util.regex.Pattern.sequence(Unknown Source) at java.util.regex.Pattern.expr(Unknown Source) at java.util.regex.Pattern.compile(Unknown Source) at java.util.regex.Pattern.<init>(Unknown Source) at java.util.regex.Pattern.compile(Unknown Source) at java.lang.String.replaceAll(Unknown Source) at Test.main(Test.java:9)

    • ベストアンサー
    • Java
  • クラス Lesson04はpublicであり、エラ

    いつも大変お世話になりありがとうございます。 下記コードについて質問です。 クラス Lesson04はpublicであり、ファイルLesson04.javaで宣言する必要があります というエラーメッセージが出ました。 どういう作業が必要でしょうか? ご回答のほど、宜しくお願い申し上げます。 public class Lesson04 { public static void main(String[] args) { System.out.println(10); System.out.println(10.0); System.out.println('a'); System.out.println("Java"); System.out.println(true); } }

    • ベストアンサー
    • Java
  • javaでメインクラスが見つからないエラーが出てしまいます。

    javaでメインクラスが見つからないエラーが出てしまいます。 やさしい簡単なプログラム class test { public static void main(String[] args) { System.out.println("Viva!"); } } をjavacでクラスファイルを作った後に(ここまではできます)java test.class を行うと could not find the main class というエラーが出てしまいます。 教科書の通りにjdkをインストールして、パスを環境変数に通して、コマンドプロンプトでコンパイルしかしていません。 なにが悪いんでしょうか?

    • ベストアンサー
    • Java
  • Java、実行時にエラーになります。

    class test14 { public static void main(string args[]) { byte b; int i = 258; b = (byte)i; System.out.println(b); //2を表示する } } C:\WORK>javac test14.java C:\WORK>java test14 エラー: メイン・クラスtest14を検出およびロードできませんでした 原因: java.lang.ClassNotFoundException: test14 いつも教えてもらってばかりですいません。 上記のプログラム、コンパイル出来ましたが 実行時、エラーになります。 どうしてでしょうか? 教えてください。 ご回答のほど宜しくお願い申し上げます。

    • ベストアンサー
    • Java
  • プログラムの合体。

    jump7799_4836さん 2018/7/2103:34:44 public class Test2 { public static int メソッド () { System.out.println("メソッド()が呼ばれました"); return 0; } public static int メソッド (int i) { System.out.println("メソッド(int i)が呼ばれました"); return i; } public static int メソッド (int i, int j) { System.out.println("メソッド(int i, int j)が呼ばれました"); return i; } public static int メソッド (short s) { System.out.println("メソッド(short s)が呼ばれました"); return s; } public static int メソッド (double d) { System.out.println("メソッド(double d)が呼ばれました"); return (int) d; } } public メソッド class Test2 { public メソッド static void main(String[] args) { Test2.メソッド (); Test2.メソッド (1); Test2.メソッド (1,2); Test2.メソッド (1.1); Test2.メソッド ((short) 1); Test2.メソッド ((double)1); } } kouzou@GD348ZZD9:/WORK$ javac Test2.java Test2.java:29: エラー: class、interfaceまたはenumがありません public メソッド class Test2 { ^ Test2.java:30: エラー: <identifier>がありません public メソッド static void main(String[] args) { ^ エラー2個 2つのプログラムが合体することってあるのですか? いつもすみません。 解説のほど、宜しくお願い申し上げます。

    • ベストアンサー
    • Java

専門家に質問してみよう