我在使用Windows 10上的命令行界面编译Java RMI分配时遇到了一些麻烦(无法使用Eclipse或任何其他IDE)。我需要编译并运行两个.java文件 - RemoteBankServer.java和RemoteBankClient.java。这两个文件都使用其他.java类(Bank.java,RemoteBankImpl.java,RemoteBank.java,Account.java和Account.java的子类)。 以前,我的所有文件都在一个文件夹中,我可以使用两个命令行窗口轻松编译和运行我的服务器和客户端:
javac RemoteBankServer.java
java RemoteBankServer
和RemoteBankClient相同。 既然我已经测试过我的代码工作正常,我需要按照以下结构将它们组织成java包:
- package name: edu.btp400.w2017.client
class name: RemoteBankClient
- package name: edu.bt400.w2017.server
class names: RemoteBankImpl, RemoteBankServer
- package name: edu.btp400.w2017.common
class name: RemoteBank (and all other classes, like Bank, Account, etc.)
我已经创建了这些文件夹(edu / btp400 / w2017 /)并在每个文件夹中放置了相应的类,但我无法编译它。现在,我在每个.java文件的顶部都有这两行:
package edu.btp400.w2017.server; //or .common or .client
import edu.btp400.w2017.*;
但是我在尝试编译RemoteBankServer.java(在服务器文件夹中)时仍然遇到编译错误,例如这个(这很奇怪,因为RemoteBankImpl位于同一个文件夹和RemoteBankServer:
RemoteBankServer.java:40: error: cannot find symbol
RemoteBankImpl b1 = new RemoteBankImpl();
^
symbol: class RemoteBankImpl
location: class RemoteBankServer
以及类似的错误,说无法找到帐户和其他类。我已经查看了有关如何使用命令行界面编译Java包的各种帖子,但我还没有得到它的工作。任何帮助将不胜感激。对不起,很长的帖子。
编辑:这是我上面编译的命令(将文件存储在各种包中之后): 我在包含edu的文件夹中尝试了这个,并得到了27个编译错误:
javac -cp . edu/btp400/w2017/server/RemoteBankServer.java
这在服务器文件夹中,并得到了15个编译错误:
javac RemoteBankServer.java
编辑:感谢用户EJP,我发现我需要在我的import语句中包含子文件夹:而不仅仅是import edu.btp400.w2017.*;
我需要做的事情:
import edu.btp400.w2017.common.*;
import edu.btp400.w2017.server.*;
import edu.btp400.w2017.client.*;
答案 0 :(得分:0)
import edu.btp400.w2017.*;
这不会导入*
指示的子包中的所有类。星号仅指类。
您需要单独导入所有包。