Java文件编译成功后的class文件无法执行

问题:创建了Java项目之后,写了helloworld后,在eclipse上能正常运行。但在控制台上编译运行这段代码,发现可以成功编译但是运行报错

  • 项目结构


    项目结构
  • 代码

package Demo;
public class Demo01 {
    public static void main(String[] args) {
        System.out.println("hello");
    }
}
  • 报错


    找不到或无法加载主类 Demo01
  • 原因
    放在package下的文件,编译方式跟直接建立一个java文件的方式略微差异,编译后,是放在java文件中写的package语句的包名下的,例如:

    • 本文中的package语句为:package Demo;,编译后,class文件是放在Demo文件夹下的
    • 如果package语句为com.bjpowernode.exam;,编译后,class文件是放在com/bjpowernode/exam下的
  • 解决办法
    • 方法一:
      • 编译: javac -d . 被编译的java文件名
        • javac:负责编译的命令
        • -d:带包编译
        • . :代表编译后生成的东西放在当前目录下
      • 运行:在包名的上一级目录下运行 java 完整类名(包名.类名)
        在src目录下,运行class文件
    • 方法二:直接使用java xxx.java
直接使用java xxx.java
  • 不使用package,直接建立java文件编译运行的形式
    语法:java 类名
    结构

    编译后,可在同目录下,直接运行

你可能感兴趣的:(Java文件编译成功后的class文件无法执行)