我正处于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。更奇怪的是我没有更改任何东西,关闭了终端和我的文本编辑器,删除了保存的文件,重新打开了所有内容,保存了它,编译了它,现在运行正常。我为这篇文章再次道歉,但它似乎已经修好了! -答案 0 :(得分:4)
您的代码应该编译好。编译Java文件的方式与执行它们的方式不同。
使用
进行编译javac CDCalc.java
...并使用
运行它们java CDCalc
答案 1 :(得分:3)
您似乎尝试将其作为java CDCalc.java
运行,但它应该只是java CDCalc
。
Java命令采用类名(不是文件名),因此没有&#34; .java&#34;最后,没有斜杠或反斜杠,但包名称的点(你的类没有包)。
答案 2 :(得分: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命令运行此程序后,我收到以下异常。
线程中的异常&#34; main&#34; java.lang.NoClassFoundError:HelloWorldDemo
主线程抛出此错误并异常退出程序。
这个错误的原因是java虚拟机在运行时找不到类文件。 java命令查找当前目录中的类,因此如果您的类文件不在当前目录中,则必须在classpath中设置,因此解决方案是将此.class文件放在类路径中
classpath是指向目录中类文件的每个系统中的环境变量。如果你的classfile在jar文件中,jar应该在classpath中。 classpath可以是绝对路径(完整路径)或相对路径(与目录相关)
解决java.lang.NoClassDefFoundError: -
HelloWorldDemo.class在运行时不可用,因此我们必须使用-classpath选项将类文件设置为java命令
java -classpath。的HelloWorld 强>
这是通过为java命令设置classpath inline来修复NoClassDefFoundError错误。
我们指示jvm通过指定来查找当前目录中的HelloWorldDemo.class。
如果类文件在不同的目录中,我们需要指定完整的目录绝对路径或相对路径而不是。 for java command
要解决Windows中的NoClassDefFoundError错误,我们必须设置CLASSPATH环境变量。
要在windows中设置classpath,我们必须配置以下值
设置CLASSPATH =%CLASSPATH%;。;
%CLASSPATH%表示要添加的现有类路径。指向当前目录
设置classpath后, java HelloWorldDemo 命令工作正常并打印hello world消息
答案 3 :(得分:0)
你的程序似乎很好。您是否使用Javac
编译了java文件?
您需要执行以下步骤:
使用.java
javac
文件(源代码)
javac CDCalc.java
这应该创建一个名为CDCalc.class
使用java
java CDCalc