如何为不同的文件创建包?

时间:2009-10-09 11:26:54

标签: java package

如何为不同的文件创建Java包?我试过了 下列。我做错了什么?什么是 正确的程序?

第一个文件是:

package dil;
public class Hello
{
    Support sp=new Support();
    int i=sp.tin();
    public void man()
    {
       System.out.println(i);
    }
}

第二个文件是:

package dil;
class Support
{
    public int tin()
    {
        return 3;
    }
}

现在,当我编译hello.java时,它会显示以下错误:

Hello:4:cannot find symbol
symbol: class Support
location: class dil.hello
Support sp=new Support();
               ^
Hello:4:cannot find symbol
symbol: class Support
location: class dil.hello
Support sp=new Support();
^

问题在哪里,我怎样才能把它们放在一起 包中的这些文件?

文件位于c:\ src。

6 个答案:

答案 0 :(得分:1)

虽然Support类不是公共的,但这不会有问题,因为两个类共享同一个包。我的猜测是你没有根据它们的packagename将两个源文件放到一个目录中,并从hello.java所在的当前目录中调用javac编译器。

如果一个类在包a.b中,这意味着项目结构应该包含一个包含yourclass.java的文件夹./a/b。

在您的情况下,尝试创建一个名为./dil的文件夹,将源文件放入其中并从其父文件夹中调用javac。

答案 1 :(得分:1)

请参阅Sun Java教程中的Creating and Using Packages,了解在Java中使用软件包的所有细节。

答案 2 :(得分:1)

假设UNIX / Linux路径名,UNIX shell等,您需要以下文件结构:

/some/where/dil
/some/where/dil/hello.java
/some/where/dil/Support.java

然后将$CLASSPATH设置为/some/where,并使用命令

进行编译
cd /some/where
javac dil/*.java

并使用

运行
java dil.hello

或者,您可以告诉javajavac使用-cp命令行选项的类路径。

您还应该在代码中修复以下错误:

  1. 将“hello”类的名称更改为“Hello”,并重命名源文件以匹配。严格来说,这不是错误,但它严重违反了命名Java类的标准。
  2. 您将成员声明为“十”,但将其称为“锡”。修复一个或另一个。
  3. “hello”类中的入口点方法应该称为“main”而不是“man”,并且应该具有签名public static void main(String[] arg)。如果您不修复这些代码将编译,但java命令将找不到入口点并将失败。

答案 3 :(得分:0)

我发现了一些你需要检查的事情:

  • class hello 以小写字母开头
  • class hello 调用 sp.ten()而不是 sp.tin()

答案 4 :(得分:0)

Support 不是public。公开并重试。

答案 5 :(得分:0)

我建议您尝试使用Netbeans,Eclipse或IntelliJ CE等免费IDE之一。这将有助于您开始编码,而不是艰难地设置一切。

BTW:这些IDE可以快速修复大多数常见问题,因此它们不仅可以为您提供错误,还可以为您提供修复错误的选项。