gpt4 book ai didi

java - 编译java时找不到符号

转载 作者:行者123 更新时间:2023-12-01 12:55:59 24 4
gpt4 key购买 nike

我在同一个包 demo 中有几个类,但最重要的是 Server.java 和 MyServerImpl.java。在 Server.java 中我有这段代码

package demo;

public class Server
{public static void main( String[] args ) throws Exception
{
MyServerImpl s = new MyServerImpl("blablabla");
...
}

以及 MyServerImpl 类

package demo;

public class MyServerImpl extends MyServerPOA {

private String location;

public MyServerImpl( String location )
{
this.location = location;
}

public void add ( String value ){
System.out.println("name " + value + location );

}
}

当我尝试使用 javac 编译时出现此错误

cannot find symbol
symbol : class MyServerImpl
location: class demo.Server
MyServerImpl s = new MyServerImpl("blablabla");

我尝试使用此命令进行编译 javac project/demo/Server.java 当我位于演示文件夹中时javac Server.java 但仍然得到相同的错误

最佳答案

扩展我的评论:

javac查找类时,它查找的文件夹基于类的完全限定名称。

因此,在您的情况下,MyServerImpl 的完全限定名称是 demo.MyServerImpl。因此,当编译器在 Server.java 中遇到 MyServerImpl 时,它会查找名为 demo 的文件夹,如果找到该文件夹​​,则会查找MyServerImpl.java.

如果您cd进入 demo,这将导致编译失败,因为demo显然不包含自身(否则您可能有一些损坏的操作系统)。

所以您需要做的是 cd 进入文件夹above demo。例如,如果您的文件层次结构是 src 作为根,其中包含 demo 包、Server.javaMyServerImpl。 java 里面:

  1. cd 进入 src,这样如果您 ls/dirdemo 是显示的文件夹(之一)
  2. javac demo/Server.java
  3. 完成(希望如此)

关于java - 编译java时找不到符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23895594/

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