编译器无法读取导入的 class
Compiler couldn't read imported class
我一直在尝试通过手动创建包的方式通过 CMD 进行编译。我尝试了命令 javac -d . Nameinfo.java
和 javac -d . Returndata.java
,其中 Nameinfo
包含计算,Returndata
包含主要函数,这个命令工作得很好。现在我在我的“java 程序”文件夹中制作了 2 个不同的包,即 packx
和 packy
,其中 packx
包含 Nameinfo
,packy
包含 Returndata
。现在,当我编译这两个时,Nameinfo.java
得到编译但 Returndata
无法 read/recognize 在 Returndata.java
.
中导入的 Nameinfo
错误:
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
if java or javac 需要,比如说,packx.Returndata
作为一个类型来做某事,它会搜索类路径 and/or 名为 packx
的目录的源路径,在该目录中,Returndata.java
或 Returndata.class
取决于我们正在讨论的工具和路径。
因此,您在 E:\java programmes\packy
中,并且正在编译一些导入 packx 的代码。因此,javac 将在类路径中查找 packx/Returndata.class
并在源路径中查找 packx/Returndata.java
并且找不到您想要的内容,因为 E:\java programmes
不在源代码中小路;通常它们默认为 .
(即当前目录)。
所有这些工作都留在 E:\java 程序文件夹中:
E:
cd "\Java programmes"
javac packx/Nameinfo.java
javac packy/Returndata.java
或者更好的是,认识到手动编译多包 java 应用程序是疯狂的。使用 maven
、gradle
或其他可以为您处理所有这些的构建工具 :)
我一直在尝试通过手动创建包的方式通过 CMD 进行编译。我尝试了命令 javac -d . Nameinfo.java
和 javac -d . Returndata.java
,其中 Nameinfo
包含计算,Returndata
包含主要函数,这个命令工作得很好。现在我在我的“java 程序”文件夹中制作了 2 个不同的包,即 packx
和 packy
,其中 packx
包含 Nameinfo
,packy
包含 Returndata
。现在,当我编译这两个时,Nameinfo.java
得到编译但 Returndata
无法 read/recognize 在 Returndata.java
.
Nameinfo
错误:
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
if java or javac 需要,比如说,packx.Returndata
作为一个类型来做某事,它会搜索类路径 and/or 名为 packx
的目录的源路径,在该目录中,Returndata.java
或 Returndata.class
取决于我们正在讨论的工具和路径。
因此,您在 E:\java programmes\packy
中,并且正在编译一些导入 packx 的代码。因此,javac 将在类路径中查找 packx/Returndata.class
并在源路径中查找 packx/Returndata.java
并且找不到您想要的内容,因为 E:\java programmes
不在源代码中小路;通常它们默认为 .
(即当前目录)。
所有这些工作都留在 E:\java 程序文件夹中:
E:
cd "\Java programmes"
javac packx/Nameinfo.java
javac packy/Returndata.java
或者更好的是,认识到手动编译多包 java 应用程序是疯狂的。使用 maven
、gradle
或其他可以为您处理所有这些的构建工具 :)