【问题标题】:How to compile dependent .java files located in different packages如何编译位于不同包中的依赖 .java 文件
【发布时间】:2015-05-31 08:49:19
【问题描述】:

我有一个名为 pack 的文件夹,里面有两个文件夹 p1 和 p2。

在文件夹 p1 中,我将以下代码写入名为 sum.java 的文件中

package pack.p1;
public class sum{
public static void Display_Sum(int a,int b){
System.out.println("Sum = "+(a+b));
}
}

然后在文件夹 p2 中,我在名为 wap8.java 的文件中编写以下代码

package pack.p2;
import pack.p1.sum;
import java.util.Scanner;
class wap8{
public static void main(String args[]){
Scanner s=new Scanner(System.in);
System.out.println("Enter two no.s = ");
int a=s.nextInt();
int b=s.nextInt();
sum.Display_Sum(a,b);

}
}

这是我在 cmd 提示符下的执行流程。 首先我通过执行创建 sum.java 的类文件

H:\Java\WAP 4\pack\p1>javac sum.java

然后我将 sum 的类路径设置为

H:\Java\WAP 4\pack\p1>set classpath=%classpath%;h:\Java\WAP 4\pack;

然后在 cmd 行中,我来到文件夹 p2 并执行以下命令,但它显示包 pack.p1 不存在。为什么会这样??

H:\Java\WAP 4\pack\p2>javac wap8.java

wap8.java:2: 错误:包 pack.p1 不存在

导入包.p1.sum;

          ^

wap8.java:10: 错误:找不到符号

sum.Display_Sum(a,b);

^

符号:变量总和

位置:wap8 类

2 个错误

我什至尝试使用 变量名 将环境变量中的类路径变量设置为 CLASSPATH变量值H:\Java\WAP 4\pack;。当我执行 javac wap8.java 并显示与上述相同的错误时仍然无法正常工作

【问题讨论】:

标签: java import package


【解决方案1】:

你无缘无故地把事情复杂化了。使用以下步骤,您应该会很好。

  1. 导航到H:\Java\WAP 4\pack\p1 目录。
  2. javac sum.java
  3. 导航到H:\Java\WAP 4\ 目录。
  4. javac pack\p2\wap8.java

就是这样。无需明确设置CLASSPATH。您必须从WAP 4 文件夹编译wap8 的原因是因为类中的包语句将其绑定到完全限定名称。所以sum1 的 FQN 为 pack.p1.sumwap8 的 FQN 为 pack.p2.wap8。因此,当您在 pack\p2 文件夹中时,javac 将无法看到 pack.p1.sum

你可以使用java pack.p2.wap8H:\Java\WAP 4目录运行你的代码

【讨论】:

  • 那很好。但我读到同样可以通过设置类文件总和的类路径然后从p2 fodler执行“javac wap8.java”并使用“java wap8”从同一个p2文件夹运行类文件来解决。请帮我设置上述程序的类路径及其执行
  • 请帮我设置类路径并解决上述任务
猜你喜欢
  • 2020-02-14
  • 2022-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多