【问题标题】:Using external class files in a package在包中使用外部类文件
【发布时间】:2015-03-03 22:54:29
【问题描述】:

我有一个程序使用位于相邻文件夹中的名为 JHelper 的外部库

home
|--lib
|  |--JHelper.java
|  `--JHelper.class
`--prj
   `--HelloWorld.java

HelloWorld.java 文件

//package prj

public class HelloWorld {
    public static void main(String[] args) {
        String echoed = JHelper.echo("Hello World");
        System.out.println(echoed);
    }
}

我可以通过在 CLASSPATH 中提供 JHelper 的位置来使用 javac 编译 HelloWorld.java,就像这样,

PS ~\prj> javac -classpath ".;..\lib\" HelloWorld.java

但是,如果我取消注释 package prj 到 HelloWorld.java 则 javac 输出它找不到符号 JHelper

为什么将 HelloWorld.java 设为包会阻止 javac 在 CLASSPATH 上找到 JHelper?

【问题讨论】:

    标签: java package classpath javac


    【解决方案1】:

    因为如果另一个类BA 在同一个包中(或在java.lang包)。

    但是...您不能从默认包中导入类。

    所以要遵循的简单规则是:永远不要将类放在默认包中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-04
      • 1970-01-01
      • 1970-01-01
      • 2011-06-16
      • 2018-06-22
      • 2018-11-19
      • 1970-01-01
      相关资源
      最近更新 更多