2012-02-18 222 views
1

我刚刚升级到最新的Java的Java 1.7.0_03错误:无法找到或加载主类

> java -version 
java version "1.7.0_03" 
Java(TM) SE Runtime Environment (build 1.7.0_03-b05) 
Java HotSpot(TM) 64-Bit Server VM (build 22.1-b02, mixed mode) 
> javac -version 
javac 1.7.0_03 
我有问题,在命令行中执行的Java程序

。例如:

public class Tester { 
    public static void main(String[] args) { 
     System.out.println("in main"); 
    } 
} 

我编译它的命令行,然后尝试执行它:

> javac Tester.java 
> java Tester 
Error: Could not find or load main class Tester 

这是一个错误?奇怪的是,我用Eclipse来执行程序没有问题。

+0

是'默认包Tester'类?编译后是当前目录下的文件'Tester.class'? – millimoose 2012-02-18 18:39:13

+0

@Inerdial,_Tester_类完全如此处所示,没有包引用。是的,_Tester.class_文件驻留在执行编译和_java_ iteself的相同目录中。 – MrRoth 2012-02-18 18:41:13

+2

不得不测试,完全相同的程序适用于我的版本。我唯一能想到的就是classpath包含'.' – 2012-02-18 18:50:01

回答

2

是否设置了CLASSPATH环境变量?当我做

export CLASSPATH=/tmp 
java Tester 

我得到一个NoClassDefFoundError的,虽然不是完全相同的错误消息,引述。

+0

''classpath''与这个问题无关。 – MrRoth 2012-02-18 18:48:59

+0

另一方面,当我在类路径中没有'.'时,我在Windows上使用相同的Java版本获取完全相同的错误消息。 – 2012-02-18 18:59:05

+2

@MrRoth:确实如此。如果你设置了'CLASSPATH',它不包含'.'或者间接包含'.'的其他引用,你将会得到那个确切的错误。尝试'在控制台窗口中设置CLASSPATH =',如果它工作,那就是你的问题。 (我知道你使用Windows,因为内部版本号在Linux/Solaris上不同) – mihi 2012-02-18 19:02:41

2

以控制台模式运行jar文件。 java -jar filename.jar

0

我试图运行Tomcat时发现同样的错误,并意识到这是因为我在32位系统上使用了64位版本的Tomcat。一旦我尝试了32位版本,它的工作。

0

如果你想运行当前工作目录中你的班级所在的程序。

java给出了三个选项。

第一个选项

java命令测试

当前工作目录

java命令第二个选项。测试

第三种选择出口CLASSPATH变量

出口CLASSPATH = $ CLASSPATH:。 (这是,如果你的目录变化的最佳之一) 或

出口CLASSPATH = $ PWD

出口CLASSPATH =

之后,你必须SORCE的.bashrc中或bashprofile。

0

只设置在系统变量类路径:

classpath=. 
相关问题