【问题标题】:Java: Why does adding the package specification to my class cause a run-time error?Java:为什么将包规范添加到我的类会导致运行时错误?
【发布时间】:2012-09-25 10:04:32
【问题描述】:

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

// /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。这个实验的下一部分将尝试导入我自己的包,显然我什至没有走到那一步。

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

【问题讨论】:

  • 添加包名时您看到什么错误?
  • 代码运行情况如何,请引用具体错误。
  • 也许你应该指定正确的类路径参数。
  • 您是否正在使用命令行?你从哪个目录运行?
  • 提供您正在使用的命令行。是的,这与 CLASSPATH 有关,您会在 Java 教程网站上找到很好的介绍。

标签: java classpath package


【解决方案1】:

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

javac myPackage/Test.java

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

java myPackage.Test

例如

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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-11
    • 1970-01-01
    • 2014-05-24
    • 1970-01-01
    • 1970-01-01
    • 2017-10-20
    • 2012-05-31
    • 1970-01-01
    相关资源
    最近更新 更多