Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
能够编译java文件,无法运行文件_Java_Powershell_Cmd - Fatal编程技术网

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

能够编译java文件,无法运行文件,java,powershell,cmd,Java,Powershell,Cmd,我试图运行这些程序,但我得到了 Error: "Could not find or load main class" 下面是我试图在cmd行中运行程序的屏幕截图: Windows Powershell屏幕截图: 这对我来说毫无意义,因为文件编译得很好,这意味着可以找到主类 如果有人能解释出哪里出了问题,我将非常感激,谢谢 UDPServer代码: UDPClient代码: 如果您在此处发布代码,将非常有用。但是如果我在黑暗中尝试一下,我会说您的文件名与Java文件中的类名不匹配。当运行j

我试图运行这些程序,但我得到了

Error: "Could not find or load main class" 
下面是我试图在cmd行中运行程序的屏幕截图:

Windows Powershell屏幕截图:

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

如果有人能解释出哪里出了问题,我将非常感激,谢谢

UDPServer代码:

UDPClient代码:


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

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

$ javac Foo.java
$ java -cp . Foo
如果您想尝试在Powershell中复制JVM/JDK,我经常使用它进行快速的JVM/JDK实验

在这种情况下,默认情况下,当前工作目录大约90%的时间应该在类路径上,但它不能容纳最后10%的时间。(当然,这是否是一个好的设计决策是有争议的)。

你是:

  • 在错误的目录中。您应该位于包含
    serverClient
    的目录中
  • 使用错误的命令。它们应该是:

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

  • 您已经定义了一个
    包serverClient位于两个文件的顶部

    因此,您应该有一个名为
    serverClient
    的目录和
    .class
    文件

    如果您希望使用
    java
    命令行执行,您应该像这样从
    src
    目录执行

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


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

    成功编译并不一定意味着代码中存在主类。1)在发布到此处之前,至少对错误消息进行基本搜索。我在大约3秒钟内找到了我链接的副本。2) 不要发布代码的图像。图像中的代码是无用的;有关避免这样做的许多原因的列表,请参阅。不要在此处张贴文本图片。张贴文本。