Doc*_*ard 1 java java-package javacompiler java-11
我有一个ComPac.java带有以下代码的java文件:
package com;
public class ComPac{
public static void main(String[] args) {
System.out.println("Hello World");
}
}
Run Code Online (Sandbox Code Playgroud)
该文件位于路径: /home/ec2-user/java_c
为了编译这个文件,我运行了javac Compac.java,然后生成了类文件。
现在轮到运行类文件了。
所以我做了java ComPac(下面的截图)
可以理解的是,我得到了错误Error: Could not find or load main class ComPac. Caused by: java.lang.NoClassDefFoundError: com/ComPac (wrong name: ComPac).
我假设这是因为 java 文件中com声明了包。
所以我尝试了,java com.ComPac并希望它能工作(下面的截图)。
但我得到了错误:Error: Could not find or load main class com.ComPac. Caused by: java.lang.ClassNotFoundException: com.ComPac.
那么我该如何运行呢?当涉及到 java 中的包时,运行的逻辑究竟是什么?
使用的Java- openjdk version "11.0.8" 2020-07-14 LTS(AWS Corretto)
使用的操作系统- Amazon Linux 2
小智 5
将类放在名为“com”的文件夹中
在 bash shell 中,它是:
$ java com/ComPac
Run Code Online (Sandbox Code Playgroud)
(来自包含“com”的文件夹,而不是“com”内部)