java - 如何为不同的文件创建一个包?

标签 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 中。

最佳答案

假设 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

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

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

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

关于java - 如何为不同的文件创建一个包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1543243/

相关文章:

java - 尝试使用新包

java - 无法获取 api key 的 md5 指纹

java - 如何通过单击按钮从另一个 jframe 打开隐藏的 jframe

java - 关于ArrayList机制的问题

java - WildFly 10.x 总是出现 HTTP 错误 403 : forbidden

python - 将 python 包安装到 sys.path

visual-studio - 通过NuGet添加System.Data.SQLite不会添加对项目的引用

java - Java包和C#命名空间的一些比较

java - 更改方法签名的好习惯

r - 如何调试在狭窄的情况下R CMD检查失败的情况