JAVA:无法使用Javac在同一个包中编译文件

时间:2015-12-29 19:13:26

标签: java compilation package

我确实搜索了很多,但仍然无法解决JAVA的奇妙问题:包。 我有2个小班,在同一个包中:elte.esti.beadando 这2个文件称为NimJatek和NimMain。 当我用以下内容编译NimJatek时:     c:\elte\esti\beadando\javac NimJatek.java 当我尝试编译时它没有问题:     c:\elte\esti\beadando\javac NimMain.java 它给出了一个错误:找不到NimJatek符号。

我已经尝试了所有可能的组合,但它仍然无效。 到目前为止我尝试过的组合:

c:\elte\esti\beadando\javac -cp c:\elte\esti\beadando NimMain.java
c:\elte\esti\beadando\javac -cp c:\elte\esti\beadando beadando/NimMain.java
c:\elte\esti\beadando\javac -cp c:\elte\esti\beadando.NimJatek NimMain.java
c:\elte\esti\beadando\javac -cp c:\elte\esti\beadando.NimJatek beadando/NimMain.java
c:\elte\esti\beadando\javac -cp c:\elte\esti\beadando.NimJatek.class NimMain.java
c:\elte\esti\javac beadando/NimMain.java
c:\elte\esti\javac -cp c:\elte\esti\beadando.NimJatek beadando/NimMain.java
c:\elte\esti\javac -cp c:\elte\esti\beadando.NimJatek.class beadando/NimMain.java
c:\javac -cp c:\elte\esti\beadando.NimJatek elte\esti\beadando/NimMain.java

可能还有一些,我记不起来了。我错过了什么?当我从两个文件中删除“package elte.esti.beadando”时,它们编译并运行得很漂亮。

注意:我不想使用编译器程序,我只能使用命令行(windows)。

3 个答案:

答案 0 :(得分:1)

由于有多个文件,我相信正在运行

javac c:\elte\esti\beadando\*.java
假设依赖关系仅限于包本身,

应该正确编译。

答案 1 :(得分:0)

  

包elte.esti.beadando

这意味着Java文件必须出现在类路径下的elte/esti/beadando目录下。如果文件在

  

C:\罗兰\ ESTI \ beadando \ NimJatek.java

这意味着您的软件包的根目录是c:\

这意味着您必须使用

javac -cp C:\ C:\elte\esti\beadando\NimMain.java

不是尝试从头开始设置项目,而是使用IDE设置项目,编辑它,在编译之前检查它并在一个按钮中编译/运行它,而不是尝试从头开始设置项目。

答案 2 :(得分:0)

问题解决了。感谢您的输入。 显然解决方案很棘手:我使用的命令是: c:\ elte \ esti \ beadando \ javac -d c:\ elte \ esti \ beadando \ elte \ esti \ beadando NimJatek.java

然后

c:\ elte \ esti \ beadando \ javac -cp。 NimMain.java

DONE !!有效。 用语言:如果你有一个包,并且需要使用dos命令提示符进行编译,那么: - 从ROOT目录中使用javac -d PACKAGEPATH FILENAME_A.java然后 从相同的根目录javac -cp。 FILENAME_B.java 这是FILE_B使用FILE_A。