错误:无法找到或加载主类主要
问题描述:
我以前做的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
。
现在,根据该post,我试图运行该程序:
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
+0
这是核心的事情是使用完全合格的类名...我不知道这一点。 – user3663882 2014-11-09 08:41:19
答
您需要从软件包目录上的一个级别引用您正在使用的软件包。所以在这里你的包被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应用程序在终端。
您需要将上述三个目录放在您现在的位置,然后运行'java com.server.main.Main',因为软件包的名称是该类名称的一部分。您还需要获得基本的Java书籍或在线教程。 – 2014-11-09 06:04:07
@DavidWallace正好。 Tahnk你 – user3663882 2014-11-09 06:06:09
你可以把它作为答案吗? – user3663882 2014-11-09 06:07:13