【问题标题】:Compile java file with a package using Oracle JDK in ubuntu在 ubuntu 中使用 Oracle JDK 编译带有包的 java 文件
【发布时间】:2015-05-08 00:51:49
【问题描述】:

我已经成功编译并保存了这个文件。

class A
{
    public static void main(String[] args)
    {
        System.out.println("Hey!"); 
    }
}

使用

javac a.java
java A

但是当我编译这个文件时:

package B;

class A
{
    public static void main(String[] args)
    {
        System.out.println("Hey!"); 
    }
}

现在,再次使用它编译但从不运行的相同命令

javac a.java
java A       
// could not find or load main class

请指导我终端运行文件的确切命令。

注意:文件名为“a.java”。

【问题讨论】:

标签: java


【解决方案1】:

您需要指定完全限定名称,即packageName.ClassName

java B.A

【讨论】:

    【解决方案2】:

    您必须将目录更改为包含路径“B”(您的包名)的目录,然后调用java B.A

    【讨论】:

    • ...和A.java必须保存在路径./B/A.java
    • 不,javac 不需要包名称。 java 会。
    • 我去了目录,A.class 与 a.java 位于同一位置,因此我再次遇到相同的错误@Axel
    • @RohanChauhan 你可能在包含目录 B 的目录中,而 B 里面必须是 A.class。
    • @Jens 我在保存 a.java 文件的“java”目录中没有任何目录。即使我使用“cd B”它说,目录不存在。
    【解决方案3】:

    如上所述,您需要指定完全限定名称,即packageName.ClassName:

            >> javac a.java
            >> java B.A
    

    但是您需要自己创建名为“packageName”的目录,因为 jdk 不会为您隐式创建一个。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    • 2012-05-06
    • 1970-01-01
    • 2011-03-10
    • 2014-02-05
    • 2022-06-18
    相关资源
    最近更新 更多