我有个程序在eclipse里面可以运行
当我导出jar的时候 双击jar提示找不到main class我cmd到class所在的顶层目录
设置了classpath
并且把所有的包考到了lib目录下面。
java运行主类说找不到一个包里面调用的类F:\>java poireadexcel.ToolView
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/widge
ts/Layout
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.widgets.Layout
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: poireadexcel.ToolView. Program will exit.请大家帮忙说说 谢谢啊
当我导出jar的时候 双击jar提示找不到main class我cmd到class所在的顶层目录
设置了classpath
并且把所有的包考到了lib目录下面。
java运行主类说找不到一个包里面调用的类F:\>java poireadexcel.ToolView
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/widge
ts/Layout
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.widgets.Layout
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: poireadexcel.ToolView. Program will exit.请大家帮忙说说 谢谢啊
解决方案 »
- java 一个类中的方法调用另一个类的方法返回空值,怎么解决?
- 怎么模拟发送ListSelectionEvent事件?
- JFrame弹出JInternalFrame吗?
- 大家给各建议!!!!!!!!!!做什么WAP网站符合大众 急!!!!!!!!!!!!!!!!
- js如何获取sql2000中的数据表中的数据
- 请教一个方法,
- 为什么用Java ZIP API 写的程序不能 解压Winzip 打包的ZIP文件啊?
- 在swing下,如何控制Jbutton等元素的大小和位置。
- 怎样用Java 来调用dos命令???
- JAVA用来做B/S数据库好吗?
- 怎么给你一个Jpanel下的两个内部Jpanel加监听器
- Unable to instantiate default tuplizer
版本不同文件名不同。
我的是 org.eclipse.swt.win32.win32.x86_3.5.0.v3550b.jar
如果你用到jface,可能还需要:org.eclispe.jface_3.5.0.....jar
我都是用windowbuilder生成工程的,它会把需要的jar都先引入工程。
最后,jar放到classpath里面就不说了,swt用的dll别忘了放path(不是classpath)里面。
ts/Layout
这个异常就不会产生了,主要原因是swt中的layout需要这个包中的org/eclipse/swt/widge 这个文件夹中的内容,如何是swt以外的jar文件包含的类就不会出现这种问题,算是eclipse的这个插件的一个缺陷吧
我把它直接复制到lib文件夹下没用吗 我这个工程在eclipse可以运行的
swt用的dll要放到path? 那在eclipse里面运行的时候path也应该要dll吧
应该有了吧 我不知道是哪些dll
我CLASSPATH设置为.;C:\Program Files\Java\jdk1.6.0_10\lib\dt.jar;C:\Program Files\Java\jdk1.6.0_10\lib\tools.jar
吧所有的jar复制到了C:\Program Files\Java\jdk1.6.0_10\lib下
还是说找不到。
我怎么找不到swing-layout-1.0.3.jar
有解压软件,比如WinRar,好压等,打开xxx.jar
打开META-INF文件夹,里面有清单文件MANIFEST.MF,用写字板打开它。
在原文后令起一行,输入“Main-Class: yyy”,后面跟一个回车。
(注:xxx为你所打包要运行的jar文件名,yyy为你运行这个jar时,首先运行的.class,yyy中不包含.class)
另外你可以试试把你的jre也copy 到同级目录
还可以 查看MANIFEST.MF 文件里面的内容是不是正确的
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.widgets.Layout
这个异常说明你的CLASSPATH不对。
找不到main class 是因为你打包打的不对。
你看看你的MANIFEST.MF文件,估计是没设置main class。jar -jar xxx.jar
和
java xxx.xxx.xxClass
这俩是不一样的。
后面一个运行成功,并不代表前面那个没问题。