在Win7中找不到或加载主类,或在thread中找不到异常;“主要”;OSX中的java.lang.NoClassDefFoundError
我知道这里有很多类似的线索,但它们对我没有帮助 我曾尝试在Win7和OSX Mountain Lion中运行: 1) java测试 2) java-cp。试验在Win7中找不到或加载主类,或在thread中找不到异常;“主要”;OSX中的java.lang.NoClassDefFoundError,java,windows,macos,Java,Windows,Macos,我知道这里有很多类似的线索,但它们对我没有帮助 我曾尝试在Win7和OSX Mountain Lion中运行: 1) java测试 2) java-cp。试验 //Test.java class HelloWorld { public static void main(String[] args){ System.out.println("Hello World!"); } } 1) 对于Win7错误: 错误:无法找到或加载主类测试 2) OSX山狮错误: 线程
//Test.java
class HelloWorld {
public static void main(String[] args){
System.out.println("Hello World!");
}
}
1) 对于Win7错误:
错误:无法找到或加载主类测试
2) OSX山狮错误:
线程“main”java.lang.NoClassDefFoundError中出现异常:测试导致
by:java.lang.ClassNotFoundException:Test
位于java.net.URLClassLoader$1.run(URLClassLoader.java:202),位于java.security.AccessController.doPrivileged(本机方法)
java.net.URLClassLoader.findClass(URLClassLoader.java:190)位于
loadClass(ClassLoader.java:306)位于
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)位于
loadClass(ClassLoader.java:247)
真的不知道这里怎么了…:(
谢谢,
Oscar看起来您的类必须与文件名同名。
test.java
必须包含class test
文件名应与类名相同,该类名为public
且具有main()方法。
在您的情况下,重命名Test.java中的文件名将编译并创建HelloWorld.class文件而不是Test.class,因为您的文件中没有声明测试类
创建.class文件后,使用JavaHelloWorld
及
下面是一个例子
//Filename abc.java
public class hi
{
public static void main(String[] args)
{
System.out.println("Hell");
}
}
输出
abc.java:1: class hi is public, should be declared in a file named hi.java
public class hi
^
1 error
但是如果你这样做
//Filename abc.java
class hi
{
public static void main(String[] args)
{
System.out.println("Hell");
}
}
它将创建hi.class文件,以便
D:\>java hi
Hell
您的类名必须与您的文件相同,并且您的类目录位置必须可翻译为您的类包。这就是Java支持名称空间的方式,未声明包被称为默认名称空间-不建议使用默认名称空间
i、 e
MyTest.java
:
class HelloWorld {
public static void main(String[] args) {
System.out.println("HW");
}
}
我与bash的对话框
:
Neoten:bin marko$ls-al
总数8
drwxr-xr-x。
drwxr-xr-x。。
-rw-r--r--HelloWorld.class
drwxr-xr-x测试
Neoten:bin marko$java HelloWorld
硬件
尼奥滕:本马尔科美元
您没有发布运行它的目录的内容,因此这是导致错误的最可能的原因。谢谢,但它没有帮助。我记得Eclipse曾经抱怨类的名称应该与声明的类相同,并且大写字母。javac Test.java工作正常。将文件名重命名为HelloWorld.java仍然会导致错误ame错误。您确定要将其重命名为HelloWorld.java吗?您是否先编译它1)javac HelloWorld.java 2)java HelloWorld。另外,检查您是否有jdk和jreNo。据我所知,如果有main方法,我可以使用java进行编译。我有了它:publicstaticvoidmain(String[]args)javac工作得很好。问题是用java编译。我想使用“java HelloWorld”生成HelloWorld.class,它在哪里(文件夹)创建类文件?我尝试运行它的方式应该在与.java文件相同的目录中创建.class文件。尽管问这个问题很愚蠢,但仍然希望确认。。。您使用javac创建类文件了吗?正如我已经提到的,javac对我来说很好。现在我再次证明,我错误地认为java也可以编译。我提出了一个非常愚蠢的问题。你的意思是说你没有运行javac吗?在这种情况下,问题就解决了……我想做的就是用java(而不是javac)编译,然后您应该学习java的基本知识:
java
启动JVM,它加载编译后的.class
文件。它与.java
文件无关。你的意思是我不能通过运行“java HelloWorld”来编译HelloWorld.java吗?是的,我的意思是肯定的。
class HelloWorld {
public static void main(String[] args) {
System.out.println("HW");
}
}