错误:无法找到或加载主类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应用程序。