【发布时间】:2014-08-19 15:05:04
【问题描述】:
所以,我不知道为什么我的项目的客户端部分给我这种类型的错误
Exception in thread "main" java.lang.ClassNotFoundException: Mining.FrequentPatternMiner
at java.net.URLClassLoader$1.run(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.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at java.io.ObjectInputStream.resolveClass(Unknown Source)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at JabberClient.main(JabberClient.java:81)
在服务器部分,我转换了FrequentPatternMiner 变量,然后将其提供给ObjectOutputStream
ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());
FrequentPatternMiner fpMiner=new FrequentPatternMiner(dataTarget, minsup);
fpMiner.salva("FP_"+nameFile+"_minSup"+minsup+".dat");
System.out.println("Frequent Patterns \n"+fpMiner);
out.flush();
out.writeObject((Object)fpMiner);
在客户端部分,我这样做
ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());
ObjectInputStream in = new ObjectInputStream(socket.getInputStream());
Object fpMiner=in.readObject();
(((ObjectInput)in).readObject());
System.out.println(fpMiner);
我将如何修复我的代码?你能帮帮我吗?
【问题讨论】:
-
您正在尝试反序列化它没有的类。我建议您创建一个包含所有对象的 jar,以便在服务器和客户端之间共享,并确保两端的 jar 版本相同。
-
如何创建这个 jar?
-
我会使用
maven,但您可以使用ant或jar命令,或IDE 中的插件。
标签: java client-server objectinputstream objectoutputstream