首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编译器无法读取导入的类

编译器无法读取导入的类
EN

Stack Overflow用户
提问于 2020-09-18 14:53:12
回答 1查看 303关注 0票数 0

我一直试图通过手工创建包来编译CMD。我尝试了命令javac -d . Nameinfo.javajavac -d . Returndata.java,其中Nameinfo包含计算,Returndata包含main函数,这个命令工作得非常好。现在,我在我的"java程序“文件夹中制作了两个不同的包,即packxpacky,其中packx包含Nameinfopacky包含Returndata。现在,当我编译这两个文件时,Nameinfo.java被编译了,但是Returndata无法读取/识别Returndata.java中导入的Nameinfo

错误:

代码语言:javascript
复制
E:\java programmes>cd packx

E:\java programmes>cd packx

E:\java programmes\packx>javac Nameinfo.java

E:\java programmes\packx>cd..

E:\java programmes>cd packy

E:\java programmes\packy>javac Returndata.java
Returndata.java:2: error: package packx does not exist
import packx.Nameinfo;
            ^
Returndata.java:7: error: cannot find symbol
 Nameinfo data = new Nameinfo();
 ^
  symbol:   class Nameinfo
  location: class Returndata
Returndata.java:7: error: cannot find symbol
 Nameinfo data = new Nameinfo();
                     ^
  symbol:   class Nameinfo
  location: class Returndata
3 errors
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-18 15:42:05

如果java或javac需要将packx.Returndata作为一种类型来执行某些操作,那么它将在类路径和/或源路径中搜索一个名为packx的目录,而在该目录中,Returndata.javaReturndata.class取决于我们正在讨论的工具和路径。

所以,您在E:\java programmes\packy中,正在编译一些导入packx的代码。因此,javac将查找packx/Returndata.class的类路径和packx/Returndata.java的源路径,因为E:\java programmes不在源路径上;通常它们默认为. (即当前目录)。

请在E:\java programmes文件夹中完成所有这些工作:

代码语言:javascript
复制
E:
cd "\Java programmes"
javac packx/Nameinfo.java
javac packy/Returndata.java

或者更好的是,要意识到手动编译多包java应用程序是疯狂的。使用mavengradle或其他为您处理所有这些问题的构建工具:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63958086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档