2009-10-09 72 views
0

如何为不同的文件创建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中。

+0

东西不对。你会给这两个文件使用你的文件夹结构吗?以及如何编译它(包括编译的当前目录)。 – NawaMan 2009-10-09 11:43:42

回答

1

假设UNIX/Linux的路径名,UNIX外壳等,需要具备以下文件结构:

/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 

或者,您可以tel l javajavac-cp命令行选项一起使用的类路径。

你还应该解决以下错误代码:

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

它仍然给出相同的错误。 – Pranjut 2009-10-09 14:41:17

+0

文件名应该是大写字母“H”的Hello.java。 – moxn 2009-10-20 09:50:51

+0

是的......这就是现在的问题!但是如果你看问题的原始版本,那么类“hello”就在一个名为“Hello.java”的文件中。我放弃。有人只是没有得到它... – 2009-10-20 11:52:34

0

我发现有些事情你必须检查:)

  • 你好以小写
  • 你好呼吁sp.ten(开始代替SP .tin()
1

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

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

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

+0

其实我已经把这两个文件放在同一个目录下,编辑 the ten()并使其成为tin(),但它仍然不能正常工作.... – Pranjut 2009-10-09 12:16:38

+0

关键在于javac需要一个类路径指向根包文件夹。 (例如:如果源代码位于/ tmp/dil中,则从/ tmp运行编译器作为源路径。) – rsp 2009-10-09 12:38:57

0

Supportpublic。公开并重试。

+0

它不必公开,因为类是在同一个包。 – Carlos 2009-10-25 10:46:14

0

我建议你尝试使用Netbeans,Eclipse或IntelliJ CE等免费IDE之一。这将帮助你开始编码,而不是一切困难的方式。

顺便说一句:这些IDE可以快速解决大多数常见问题,所以它们不仅给你提供了错误,还给你选项来解决它们并为你做。

相关问题