Я знаю, что почувствую себя отсталым, когда пойму это.Я пытаюсь сделать очень простой клиент / сервер и запустить его из командной строки.Он отлично работает из Eclipse, но не из 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, чтобы следовать рекомендациям любой другой статьи (но какой смысл, если.уже в моем classpath?), я попытался запустить его из-за пределов клиентской папки, все просто дает мне ту же ошибку.В Eclipse все, что мне нужно было сделать, это вставить файлы Java в пустой проект, и он запустился.Что я тут не так делаю?