-1

私は、Java を使用したプログラミングの非常に初歩的なレベルにいます。私は、投資を取り、それに金利を追加することを含む簡単なコードを書いています。コードはまだ完成していませんが、java.lang.ClassNotFoundExceptionエラーが発生しました。私は Java に慣れていないので、まだこの問題に遭遇したことはありません。私の混乱が生じるのは、プログラムがコンパイルされることです。この問題にアプローチする方法が本当にわかりません。

私が言ったように、これをどこから始めるべきかについての手がかりがありません。ここにエラーがあります。

Exception in thread "main" java.lang.NoClassDefFoundError: CDCalc/java
Caused by: java.lang.ClassNotFoundException: CDCalc.java
    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)

コード全体

    import java.util.Scanner;

public class CDCalc
{
    public static void main(String args[])
        {
            int Count = 0;
            int Investment = 0;
            double Rate = 0;


            Scanner userInput = new Scanner(System.in);

            System.out.println("How much money do you want to invest?");
            int Invest = userInput.nextInt();

            System.out.println("How many years will your term be?");
            double Term = userInput.nextInt();

            System.out.println("Investing: " + Investment);
            System.out.println("     Term: " + Term);

            if (Term <= 1)
            {
            Rate = .3;
            }

            else if (Term <= 2)
            {
            Rate = .45;
            }

            else if (Term <= 3)
            {
            Rate = .95;
            }

            else if (Term <= 4)
            {
            Rate = 1.5;
            }

            else if (Term <= 5)
            {
            Rate = 1.8;
            }

            System.out.println("Total is: " + (Rate * Invest));




        }
}

これについて何か助けていただければ幸いです。ありがとう

編集

申し訳ありませんが、これを含める必要がありました。コードは問題なくコンパイルされましたが、実行すると問題が発生しました。javav CDCalc.java と Java CDCalc を使用しましたが、エラーが発生しました。さらに奇妙なことは、何も変更せず、ターミナルとテキスト エディターを閉じ、保存したファイルを削除し、すべてを再度開いて保存し、コンパイルしたところ、問題なく動作するようになったことです。この投稿でもう一度お詫び申し上げますが、それ自体は修正されたようです! –</p>

4

4 に答える 4

4

コードは正常にコンパイルされるはずです。Java ファイルをコンパイルする方法は、それらを実行する方法とは異なります。

でコンパイルします

javac CDCalc.java

...そしてそれらを実行します

java CDCalc
于 2012-11-27T04:50:13.997 に答える
3

として実行しようとしたようですがjava CDCalc.javajava CDCalc.

Java コマンドはクラス名 (ファイル名ではない) を取るため、末尾に「.java」はなく、パッケージ名にはスラッシュやバックスラッシュはありません (クラスにはパッケージがありません)。

于 2012-11-27T04:50:03.983 に答える
1

これはサンプル例です:

public class HelloWorldDemo {
 public static void main(String args[]) {
  System.out.println("Hello world test message");
 }
}

これはサンプルの hello world プログラムです。javac HelloWorldDemo.java コマンドを使用してこのプログラムをコンパイルすると、正常にコンパイルされ、現在のディレクトリに HelloWorldDemo.class が生成されます。

Java HelloWorldDemo コマンドを使用してこのプログラムを実行した後、以下の例外が発生します。

スレッド「メイン」の例外 java.lang.NoClassFoundError: HelloWorldDemo

スレッド main はこのエラーをスローし、プログラムを異常終了させます。

このエラーの理由は、Java 仮想マシンが実行時にクラス ファイルを見つけられないことです。java コマンドは現在のディレクトリにあるクラスを検索するため、クラス ファイルが現在のディレクトリにない場合は、クラスパスに設定する必要があるため、解決策はこの .class ファイルをクラスパスに配置することです

classpath は、ディレクトリ内のクラス ファイルを指すすべてのシステムの環境変数です。クラスファイルがjarファイルにある場合、jarはクラスパスにある必要があります。classpath は、絶対パス (完全パス) または相対パス (ディレクトリに関連するパス) にすることができます。

java.lang.NoClassDefFoundError を解決します:-

HelloWorldDemo.class は実行時に利用できないため、-classpath オプションを使用してクラス ファイルを Java コマンドに設定する必要があります。

java -クラスパス . こんにちは世界

これは、java コマンドのクラスパスをインラインに設定して NoClassDefFoundError エラーを修正するためです。

を指定して、現在のディレクトリで HelloWorldDemo.class を探すように jvm に指示しています。

クラス ファイルが別のディレクトリにある場合は、完全なディレクトリの絶対パスまたは相対パスを指定する必要があります。Java コマンド用

  1. Windows での java.lang.NoClassDefFoundError の修正:-

Windows で NoClassDefFoundError エラーを解決するには、CLASSPATH 環境変数を設定する必要があります。

Windows でクラスパスを設定するには、以下の値を設定する必要があります

set CLASSPATH=%CLASSPATH%;.;

%CLASSPATH% は、既存のクラスパスが追加されることを意味します。現在のディレクトリを指す

クラスパスを設定すると、Java HelloWorldDemo コマンドが正常に動作し、hello world メッセージが出力されます

于 2012-11-27T04:54:18.577 に答える
0

あなたのプログラムは問題ないようです。を使用して Java ファイルをコンパイルしましたJavacか?

以下の手順を実行する必要があります。

  1. .javaを使用してファイル(ソースコード)をコンパイルするjavac

     javac CDCalc.java
    

    これにより、次の名前のクラス ファイルが作成されます。CDCalc.class

  2. を使用してコンパイルされたクラスファイルを実行するjava

     java CDCalc
    
于 2012-11-27T04:50:34.083 に答える