从命令行运行基本RMI客户端服务器

时间:2013-09-19 21:51:28

标签: java eclipse command-line rmi javac

我是Java的新手,希望有人可以帮我解决这个问题。

我在日食中建立了一个项目;并有三个包:客户端,接口和服务器。

当我以java应用程序(通过eclipse)运行服务器时,它启动正常。如果我然后通过eclipse将客户端作为java应用程序运行,结果就像我期望的那样。

我现在正试图通过命令行运行它们。首先,我创建了一个包含所有Interfaces * .class文件的jar

我现在正在尝试编译Server.java文件,但是它说包接口不存在。

所以目前我有:

src/Interfaces
       |--inter1.java
       |--inter2.java
       |--inter1.class
       |--inter2.class
       |--inter12.jar 
             |--inter1.class
             |--inter2.class
src/Server
      |-myServer.java
      |-fileThat'myServer.java'dependson.java
src/Client
      |-myClient.java 

在myServer.java中我有例如:

 package Server
 ...
 import Interfaces.inter1;

看来我打破了试图运行它的包结构;到目前为止,我已经尝试了几件事,包括

java -cp ../Interfaces/inter12.jar:myServer.java

抛出“线程中的异常”主“java.lang.NoClassDefFoundError:myServer / java”

任何帮助都表示赞赏,我承认在这里有点失落,我读的越多,我得到的就越混乱。

编辑: 我无法编译myServer.java;在运行'javac myServer.java'时我得到了:

myServer.java:8: package Interfaces does not exist
           import Interfaces.inter1;

1 个答案:

答案 0 :(得分:0)

运行已编译的类而不是源文件。

还要考虑在使用java -cp时,您需要提供完全限定的主类名,例如

java -cp com.mycompany.MyMain

要编译服务器类,请尝试以下操作:

How to include jar files with java file and compile in command prompt

或者..为什么不将eclipse中的所有类作为jar文件导出? (你为接口做的一样)

运行服务器类时,必须在接口jar中添加运行类路径。请参阅:How to run a java class with a jar in the classpath?

类似的东西:

java -cp interfaces.jar;. server.MyServer