我知道当我找出这个问题时,我会感觉像是一团糟。我试图做一个非常简单的客户端/服务器,并从命令行运行它。它从Eclipse运行良好,但不是从cmd运行。这里的客户端:NoClassDef从cmd运行但未运行时发现
package com.mycompany.pdr.client;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class SimpleClientSend {
public static void main(String[] args) {
String host = "127.0.0.1";
int port = 11048;
String dataToSend = "HELLO SERVER";
System.out.println("> Trying to connect...");
System.out.println("> Opening connection to server [" + host + ":"
+ port + "]...");
Socket socket1Connection;
try {
socket1Connection = new Socket(host, port);
System.out.println("> Connected...");
System.out.println("> Trying to write data... [ " + dataToSend + " ]");
BufferedOutputStream bos = new BufferedOutputStream(
socket1Connection.getOutputStream());
/*
* Instantiate an OutputStreamWriter object with the optional
* character encoding. e.g. UTF-8
*/
OutputStreamWriter osw = new OutputStreamWriter(bos, "US-ASCII");
// Writing to server
osw.write(dataToSend);
osw.flush();
System.out.println("> Writing to server done...");
socket1Connection.close();
} catch (UnknownHostException e) {
System.out.println(e.getLocalizedMessage());
System.out.println("Unknown Host. Please check if the server is running at the IP & port");
//e.printStackTrace();
} catch (IOException e) {
System.out.println(e.getLocalizedMessage());
System.out.println("Could not send data. Giving up.");
//e.printStackTrace();
}
System.out.println("> End of connection...");
}
}
我的目录结构为:(MyWorkspace)/myProject/com/mycompany/pdr/client
我从客户端文件夹内运行javac SimpleClientSend.java
,我也得到一个类文件,没有错误。我跑java SimpleClientSend
,我得到一个NoClassDefFound消息:
Exception in thread "main" java.lang.NoClassDefFoundError: SimpleClientSend (wrong name: com/iai/pdr/client/SimpleClientSend)
我使用-cp .
,当我运行java遵循所有其他文章建议在那里尝试(但什么是如果已经在我的类路径的地步? ),我已经尝试从客户端文件夹外部运行它,所有事情都给我带来了同样的错误。在eclipse中,我所要做的只是将java文件粘贴到一个空白项目中并运行。我在这里做错了什么?
尝试运行从(MyWorkspace)/ myProject – vickirk 2011-12-16 15:20:42