gpt4 book ai didi

java - 如何编译位于不同包中的依赖 .java 文件

转载 作者:行者123 更新时间:2023-12-02 04:37:43 26 4
gpt4 key购买 nike

我有一个名为 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 不存在

导入pack.p1.sum;

          ^

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

sum.Display_Sum(a,b);

^

符号:变量和

位置:wap8 类

2 个错误

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

最佳答案

你无缘无故地将事情变得过于复杂化。使用以下步骤,您应该会很好。

  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 是因为类中的 package 语句将其绑定(bind)到完全限定名称。因此,sum1 的 FQN 为 pack.p1.sumwap8 的 FQN 为 pack.p2.wap8 。因此,当您位于 pack\p2 文件夹中时,javac 将无法看到 pack.p1.sum

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

关于java - 如何编译位于不同包中的依赖 .java 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30555528/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com