错误:无法找到或加载主类Main

我是java类:

package com.server.main; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class Main { public static void main(String args[]) throws Exception{ ServerSocket server = new ServerSocket(12345); Socket client = server.accept(); PrintWriter writer = new PrintWriter(client.getOutputStream()); writer.write("Hello from server"); } } 

现在我正在尝试编译并运行它。 我所做的是:

 javac Main.java 

没关系, Main.class已经制作好了。

现在,根据那篇文章 ,我试图运行该程序:

 java -cp C:\Users\workspace\Tests\src\com\server\main Main java -cp C:\Users\workspace\Tests\src\com\server\main Main.class java -cp . Main java -cp . Main.class 

所有这些都产生了输出:

 Error: Could not find or load main class Main 

怎么了?

你的Main是一个包,我相信你需要

 java -cp C:\Users\workspace\Tests\src com.server.main.Main 

您也可以移动到项目的顶级文件夹并使用. 喜欢

 cd C:\Users\workspace\Tests\src java -cp . com.server.main.Main 

最后,您可以将该文件夹添加到CLASSPATH

 set CLASSPATH=C:\Users\workspace\Tests\src java com.server.main.Main 

您需要从正在使用的包目录上方的一个级别进行引用。 所以这里的包是com.server.main,这意味着你的目录结构是:

 src/ com/ server/ main/ Main.java Main.class 

你不一定需要在src目录下(这就是我们使用-cp或-classpath选项的原因)并给出以下命令

使用:

 java -cp C:\Users\workspace\Tests\src com.server.main.Main 

请看这里: http : //docs.oracle.com/javase/tutorial/getStarted/problems/index.html

我找到了解决我的问题,编译并在终端中运行java应用程序。