Olá pessoal, que erro é esse ?
Exception in thread "main" java.lang.NoClassDefFoundError: Servidor (wrong name:
servidor/Servidor)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: Servidor. Program will exit.
Parece que ele não encontrou a classe “Servidor”.
Dê uma verificada na declaração de pacote na classe e tente recompilar seu projeto (reconstruir e limpar, caso esteja usando NetBeans).
Ele compila normal, mas na hora de executar aparece essa msg de erro.
Estou utilizando o Eclipse e seu eu tentar executar pelo eclipse dá o seguinte erro
Algum problema ocorreu ao criar ou enviar dados pelo socket Cliente
Exception in thread "main" java.lang.NullPointerException
at cliente.Cliente.main(Cliente.java:29)
Classe Cliente
package cliente;
import java.io.IOException;
import java.io.PrintStream;
import java.net.Socket;
public class Cliente {
public static void main(String[] args) {
// Declaro o socket cliente
Socket socket = null;
// Declaro a Stream de saida de dados
PrintStream stream = null;
try{
// Cria o socket com o recurso desejado na porta especificada
socket = new Socket("192.168.0.102", 7000);
// Cria a stream de saida de dados
stream = new PrintStream(socket.getOutputStream());
// Imprime uma linha para a stream de saida de dados
stream.print(socket.getOutputStream());
}
catch (IOException e) {
System.out.println("Algum problema ocorreu ao criar ou enviar dados pelo socket Cliente");
}
finally{
try{
stream.close(); // Erro aparece aqui
socket.close();
}
catch(IOException e){
}
}
}
}
Classe Servidor
package servidor;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class Servidor {
public static void main(String[] args) {
// Declaro o server socket
ServerSocket server = null;
// Declaro o socket de comunicação
Socket socket = null;
// Declaro o leitor para entrada de dados
BufferedReader entrada = null;
try{
// Cria o server socket na porta 7000 se estiver disponível
server = new ServerSocket(7000);
// Aguarda uma conexão na porta especificada, cria e retorna o soquete que irá se comunicar com o cliente
socket = server.accept();
// Cria um BufferedReader para o canal da stream de entrada de dados do Socket socket
entrada = new BufferedReader(new InputStreamReader(socket.getInputStream()));
// Aguarda por algum dado e imprime na tela
System.out.println(entrada.readLine());
}
catch (IOException e) {
// Imprime uma notificação caso haja algum erro
System.out.println("Algum problema ocorreu para criar ou receber um socket Servidor");
}
finally{
try{
socket.close(); // Erro aparece aqui
server.close();
}
catch(IOException e){
e.printStackTrace();
}
}
}
}
Erro tbm se executar o programa pelo eclipse
Exception in thread "main" java.lang.NullPointerException
at servidor.Servidor.main(Servidor.java:36)
Algum problema ocorreu para criar ou receber um socket Servidor
Quando acontece NullPointerException, em 99% dos casos é descuido de quem tá programando.
No seu caso, falou uma verificação antes de tentar fechar o stream do cliente (e também do socket):
[code]finally{
try{
if (stream != null)
stream.close(); // Erro aparece aqui
if (socket != null)
socket.close();
}
catch(IOException e){
}
} [/code]
Mesma coisa para o Servidor. Tente aí e veja se funciona agora.