能够编译java文件,无法运行文件

时间:2017-09-19 00:34:03

标签: java powershell cmd

我正在尝试运行这些程序,但我正在

Error: "Could not find or load main class" 

以下是我尝试在cmd行中运行程序的屏幕截图:

Windows Powershell屏幕截图:

Windows Powershell Screenshot

这对我来说没有意义,因为文件编译得很好,这意味着可以找到主类。

如果有人能解释出现了什么问题,我会非常感激,谢谢。

UDPServer代码:

Server Code

UDPClient代码:

Client Code

4 个答案:

答案 0 :(得分:0)

如果您在此处发布代码,那将非常有用。但是,如果我在黑暗中尝试拍摄,我会说你的文件名与Java文件中的类名不匹配。

答案 1 :(得分:0)

运行javac时,会传递要编译的文件的路径 - 因此这些文件隐式位于类路径中。运行java时,您没有显式传入任何文件,因此必须在类路径中包含当前目录,以便JVM知道在那里查看。

$ javac Foo.java
$ java -cp . Foo

我经常使用this Bash function进行快速JVM / JDK实验,如果你想尝试在Powershell中复制它。

这是其中一种情况,当前工作目录可能应该默认在类路径上~90%的时间,但它不能容纳最后10%。 (当然,这是否是一个好的设计决定是值得商榷的。)

答案 2 :(得分:0)

你是:

  1. 在错误的目录中。您应该位于包含 serverClient
  2. 的目录中
  3. 使用错误的命令。他们应该是:

    javac serverClient/*.java
    java serverClient.UDPServer
    java serverClient.UDPClient
    

答案 3 :(得分:0)

您已在两个文件的顶部定义了package serverClient;

因此,您应该拥有一个名为serverClient的目录,其中包含.class个文件。

如果您希望使用java命令行执行,则应该从src目录执行,如下所示

PS ...\Programming Assignments\src > java serverClient.UDPServer

PS ...\Programming Assignments\src > java serverClient.UDPClient