Java:为什么将包规范添加到我的类会导致运行时错误?

时间:2012-09-25 01:58:47

标签: java classpath package

所以,我的代码非常简单。只是想尝试创建一个包。

// /home/user1/Code/packageTest/src/myPackage/Test.java

package myPackage;

public class Test
{

    public static void main(String[] args)
    {
        System.out.println("Hello, world.");
    }
}

让我们说这段代码在某个目录myPackage中。

如果我注释掉第一行(包规范),代码运行正常,则打印消息。它以任何一种方式编译,但如果使用未注释掉的包行编译,则会导致运行时错误。

成功制作包装需要做什么?我似乎无法找到正确的搜索术语来对此进行真正的解释,只有关于包命名约定的东西,为什么它们用于分隔命名空间,bla bla bla。这个实验的下一部分是尝试导入我自己的包,显然我甚至没有那么远。

与类路径有关...也许......?我的“基本目录”是什么和在哪里?任何有关这方面的信息将不胜感激。

1 个答案:

答案 0 :(得分:3)

您应该在名为myPackage的目录中的java文件中创建该类。然后你应该从该目录出来并按如下方式编译它

javac myPackage/Test.java

然后使用完全限定类名(FQCN)运行它,如下所示:

java myPackage.Test

E.g。

C:\Temp\test1>type myPackage\Test.java
package myPackage;

public class Test
{

    public static void main(String[] args)
    {
        System.out.println("Hello, world.");
    }
}
C:\Temp\test1>javac myPackage/Test.java

C:\Temp\test1>java myPackage.Test
Hello, world.

C:\Temp\test1>