gpt4 book ai didi

java - 如何从同一包中的另一个类调用一个类显示错误如何在java中修复它?

转载 作者:行者123 更新时间:2023-12-01 06:23:58 25 4
gpt4 key购买 nike

如何从同一包中的另一个类调用一个类显示错误如何修复它?

我有三门课

FirstPack.java

SecondPack.java

Main.java

这是我的 FirstPack.java

    //FirstPack.java
package mypack.in;

public class FirstPack
{

public void fun()
{
try
{
System.out.println("First Package");
}

catch(Exception ae)
{
}

}
}

这是我的 SecondPack.java

    //SecondPack.java
package mypack.in;

public class SecondPack
{
public void fun()
{
FirstPack f=new FirstPack();
f.fun();

try
{
System.out.println("Second Package");
}
catch(Exception ae)
{
}
}

}

这是我的 Main.java

          //Main.java
import java.lang.*;
import mypack.in.*;
class Main
{

public static void main(String args[])
{
try
{
//FirstPack obj_fp=new FirstPack();
//obj_fp.fun();
SecondPack obj_sp=new SecondPack();
obj_sp.fun();

}
catch(Exception ae)
{
}
}

}

编译 Firstpack.java 即 javac FirstPack.java - 没问题

编译 SecondPack.java 即 javac SecondPack.java- 错误 ....

    C:\JAVASAMPLE\Package\Three\mypack\in>javac SecondPack.java
SecondPack.java:7: cannot find symbol
symbol : class FirstPack
location: class mypack.in.SecondPack
FirstPack f=new FirstPack();
^
SecondPack.java:7: cannot find symbol
symbol : class FirstPack
location: class mypack.in.SecondPack
FirstPack f=new FirstPack();
^
2 errors

并且,在编译 Main.java 时,即 javac Main.java - 没问题

包 - mypack.in FirstPack.java 和 SecondPack.java 在 mypack.in Main.java 之外,先生,如果没有包,是的,它可以工作,但使用 pakage,它不起作用,我没有使用任何 IDE

最佳答案

[编辑]

注意,您不应该独立编译每个类。 Java 编译器被设计为在源文件中遇到每个类的第一个实例时对其进行编译。从根目录编译 Main.java,不会有任何错误。

[/编辑]

[第二次编辑]

我相信这一切的发生是因为 javac 编译器开始在当前目录中查找类,然后搜索子目录。由于 FirstPackmypack.in 包的一部分,因此它需要位于从当前目录开始的文件夹 ./mypack/in/ 中(您执行编译器的目录。基本上,您的编译器知道 FirstPack 实际上是 mypack.in.FirstPack 并将开始查找 ./mypack/in/FirstPack 来自您尝试编译的文件所在的位置。

http://kevinboone.net/classpath.html

[/第二次编辑]

虽然它在编译时抛出错误,但该程序对我来说可以正确执行。确保 Main.class 位于根目录中,并且 FirstPackSecondPack 位于 %root%\mypack\in

我无法确切地告诉你为什么这一切都是这样,但我知道它是这样运作的。

关于java - 如何从同一包中的另一个类调用一个类显示错误如何在java中修复它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25635868/

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