执行java类文件时出错

执行java类文件时出错,java,linux,Java,Linux,我有以下文件~/workspace/A/A.java: package A; public class A{ public static void main(String[]args){ System.out.println("Hello world"); } } 使用ecj编译不会给我带来问题,但在尝试执行时会出现以下错误: ~/workspace/A $ java A Exception in thread "main" java.lang.NoClassD

我有以下文件~/workspace/A/A.java:

package A;
public class A{
    public static void main(String[]args){
        System.out.println("Hello world");
    }
}
使用ecj编译不会给我带来问题,但在尝试执行时会出现以下错误:

~/workspace/A $ java A
Exception in thread "main" java.lang.NoClassDefFoundError: A (wrong name: A/A)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
~/workspace/A $ java -cp . A
Exception in thread "main" java.lang.NoClassDefFoundError: A (wrong name: A/A)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

我在LinuxMint17上用openjdk-7-jre版本7u55-2.4.7-1ubuntu1尝试了这一点,您是否尝试过先编译类,然后执行它

javac A.java

java A

您是否尝试过先编译类,然后再执行它

javac A.java

java A

您是否尝试过先编译类,然后再执行它

javac A.java

java A

您是否尝试过先编译类,然后再执行它

javac A.java

java A

首先,您必须使用下面的命令编译java程序

javac A.java


然后,运行java A

首先,您必须使用下面的命令编译java程序

javac A.java


然后,运行java A

首先,您必须使用下面的命令编译java程序

javac A.java


然后,运行java A

首先,您必须使用下面的命令编译java程序

javac A.java


然后,运行javaa

首先需要使用javaca.java进行编译

然后,您还需要在像这样运行时指定类路径


java类路径。A

首先需要使用javac A.java进行编译

然后,您还需要在像这样运行时指定类路径


java类路径。A

首先需要使用javac A.java进行编译

然后,您还需要在像这样运行时指定类路径


java类路径。A

首先需要使用javac A.java进行编译

然后,您还需要在像这样运行时指定类路径


java类路径。A

不知道ecj是否与javac不同,因此请确保编译后A.class文件的目录与java文件(~/workspace/A/)的目录相同,然后尝试以下操作:

cd ~/workspace
java -cp . A.A

不知道ecj是否与javac不同,因此请确保编译后A.class文件与java文件(~/workspace/A/)的目录相同,然后尝试以下操作:

cd ~/workspace
java -cp . A.A

不知道ecj是否与javac不同,因此请确保编译后A.class文件与java文件(~/workspace/A/)的目录相同,然后尝试以下操作:

cd ~/workspace
java -cp . A.A

不知道ecj是否与javac不同,因此请确保编译后A.class文件与java文件(~/workspace/A/)的目录相同,然后尝试以下操作:

cd ~/workspace
java -cp . A.A

正如您所说,您拥有结构/workspace/A/A.java 只需打开终端并浏览到工作区目录,然后键入以下命令

编撰

javac A/A.java
执行

java A.A

正如您所说,您拥有结构/workspace/A/A.java 只需打开终端并浏览到工作区目录,然后键入以下命令

编撰

javac A/A.java
执行

java A.A

正如您所说,您拥有结构/workspace/A/A.java 只需打开终端并浏览到工作区目录,然后键入以下命令

编撰

javac A/A.java
执行

java A.A

正如您所说,您拥有结构/workspace/A/A.java 只需打开终端并浏览到工作区目录,然后键入以下命令

编撰

javac A/A.java
执行

java A.A

我建议使用小写的JAVA包名,尤其是当类名与包名相同时。您可能需要阅读以下内容:

我建议使用小写的JAVA包名,尤其是当类名与包名相同时。您可能需要阅读以下内容:

我建议使用小写的JAVA包名,尤其是当类名与包名相同时。您可能需要阅读以下内容:

我建议使用小写的JAVA包名,尤其是当类名与包名相同时。您可能需要阅读以下内容: