我写了个java程序,在eclipse里面点运行的时候就没有问题,一切正常,数据也正常.
但是我在命令行里面用javac执行正常,然后java执行的时候就出错了.
Exception in thread "main" java.lang.NoClassDefFoundError: d:\java\Server4
Caused by: java.lang.ClassNotFoundException: d:\java\Server4
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)这是为啥哪?
我在linux下运行也是这样的错误.
但是我在命令行里面用javac执行正常,然后java执行的时候就出错了.
Exception in thread "main" java.lang.NoClassDefFoundError: d:\java\Server4
Caused by: java.lang.ClassNotFoundException: d:\java\Server4
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)这是为啥哪?
我在linux下运行也是这样的错误.
解决方案 »
- Java初学者:eclipse 怎么没有JMF包?
- java编译后的exe文件,还是字节码吗?还需要虚拟机来执行吗?
- 分油问题
- 也做了一个内网聊天工具
- 求教paint(),repaint(),update() 的问题--如何设计一个画画板???
- 关于java值传递方面的疑问,请高人分析一下内存中的变化,为什么2个结果的值不同
- 小弟想学WEB设计,请各位大虾之条明路
- 请问java里怎么实现一个文本框,自动换行,没有水平滚动条
- 小弟 开始学JAVA 大家给推荐几本书呀
- 如何解决java Applet swing组件不能在浏览器中运行
- 对于两个接口有相同的方法,如何实现
- 来看看这段代码为什么不能执行
//import java.io.*;
import java.util.*;
import java.io.PrintWriter;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Server4 {
private ServerSocket server;
private BManager bMan=new BManager();
public Server4(){}
void startServer()
{
String xml = "<cross-domain-policy>";
xml = xml + "<allow-access-from domain=\"*\" to-ports=\"*\" />";
xml = xml + "</cross-domain-policy>";
try{
server=new ServerSocket(8888);
//protocol.sendStringToSingleClient(protocol.getUser(), "<?xml version=\"1.0\"?><cross-domain-policy><site-control permitted-cross-domain-policies=\"all\"/><allow-access-from domain=\"*\" to-ports=\"*\"/></cross-domain-policy>\0");
//System.out.println("服务器套接字建立完毕");
while(true)
{
Socket socket=server.accept();
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter pw = new PrintWriter(socket.getOutputStream());
char[] by = new char[22];
br.read(by,0,22);
String head = new String(by);
if(head.equals("<policy-file-request/>"))
{
pw.print(xml + "\0");
pw.flush();
}
new Chat_Thread(socket).start();
bMan.add(socket);
bMan.sendClientInfo();
}
}catch(Exception e){
//System.out.println(e);
}
}
public static void main(String[] args) {
Server4 server=new Server4();
server.startServer();
}
class Chat_Thread extends Thread
{
Socket socket;
private BufferedReader reader;
private PrintWriter writer;
Chat_Thread(Socket socket)
{
this.socket=socket;
}
public void run()
{
try
{
reader=new BufferedReader(new InputStreamReader(socket.getInputStream(),"utf8"));
writer=new PrintWriter(socket.getOutputStream(),true);
String msg;
while((msg=reader.readLine())!=null)
{
bMan.sendToAll(msg);
}
}catch(Exception e)
{
}finally
{
try {
bMan.remove(socket);
if(reader !=null) reader.close();
if(writer !=null) writer.close();
if(socket !=null) socket.close();
reader=null;
writer=null;
socket=null;
bMan.sendClientInfo();
} catch (Exception e) {}
}
}
}
}class BManager extends Vector
{
BManager (){}
void add(Socket sock)
{
super.add(sock);
}
void remove(Socket sock)
{
super.remove(sock);
}
synchronized void sendToAll(String msg)
{
PrintWriter writer=null;
Socket sock;
for(int i=0;i<size();i++)
{
sock=(Socket)elementAt(i);
try
{
writer=new PrintWriter(sock.getOutputStream(),true);
}catch(Exception ie){}
if(writer!=null) writer.println(msg);
}
} synchronized void sendClientInfo()
{
}
}
[root@localhost ~]# java /root/Server4
Exception in thread "main" java.lang.NoClassDefFoundError: .root.Server4
at gnu.java.lang.MainThread.run(libgcj.so.7rh)
Caused by: java.lang.ClassNotFoundException: .root.Server4 not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./,file:/usr/java/jdk1.6.0_07/lib/dt.jar,file:/usr/java/jdk1.6.0_07/lib/tools.jar], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
at java.net.URLClassLoader.findClass(libgcj.so.7rh)
at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.7rh)
at java.lang.ClassLoader.loadClass(libgcj.so.7rh)
at java.lang.ClassLoader.loadClass(libgcj.so.7rh)
C:\>javac Server4.java
注意:Server4.java 使用了未经检查或不安全的操作。
注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。C:\>java Server4
server.startServer() runing为了能看出执行结果,我修改了一下main方法.
public static void main(String[] args) {
Server4 server=new Server4();
System.out.println("server.startServer() runing");
server.startServer();
}
需要配jdk地址,在环境变量Path中加入C:\Program Files\Java\jdk1.6.0_10\bin;
或者C:\Program Files\Java\jdk1.5.0\bin
我用了两个版本的 jdk都可以执行.
我这里没有linux环境,无法在linux环境测试。
根据上面的原因,我怀疑是你linux环境jdk环境配置的问题。