用NETBEANS6.9 做了一个简单的界面程序,
用 exe4j 转换 exe格式的文件,, 按教程一步一步来的
最后,运行时,报错
是什么原因?
谢谢
java.lang.NoClassDefFoundError: org/jdesktop/application/SingleFrameApplication
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
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 com.exe4j.runtime.LauncherEngine.launch(Unknown Source)
at com.exe4j.runtime.WinLauncher.main(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.jdesktop.application.SingleFrameApplication
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)
... 14 more

解决方案 »

  1.   

    exe4j打包有两种方式,一种是把所有的jar包打入“JAR in EXE”模式,另外一种不包含jar包“Regular mode”,如果是第二种,运行的时候,要把lib下的jar包拷贝过去才能运行。
      

  2.   

    这样的,按第二种方法
    “另外一种不包含jar包“Regular mode”,如果是第二种,运行的时候,要把lib下的jar包拷贝过去才能运行。”是可以正常执行的
    但是有问题,,只能在DIST目录里执行,,,我将所有的JAR文件,及生产的EXE文件,都一起复制到另个目录
    就不行了 不知是何原因呢???
     如果只能在指导目录,,发布后,就很麻烦了呀
     指导指导
     谢谢
      

  3.   

    dist目录里,有一个生成的**.jar文件,和lib文件夹,只要你保正jar文件所在的目录里有这个lib文件夹,在哪里运行都没有问题。比如你在c:\aaa目录下,那么c:\aaa\**.jar 和c:\aaa\lib\*都要有才行。
      

  4.   

    那么c:\aaa\**.jar 和c:\aaa\lib\*都要有才行。您的 意思是,,**.jar 文件和生成的EXE文件,在同级目录。。lib里的文件是在二级目录?相对于aaa ?我试试吧再非常感谢
      

  5.   

    非常,感谢,如您说的那样,就OK 
    我开始是把 LIB文件内的所有文件都 复制到和EXE文件同一级目录内现在按您描述的那样随便建了一个目录如:测试在测试目录内放置了
    1 生成的exe文件
    2 DIST目录生成的*.jar 文件
    3 调用的DLL文件
    4 DIST目录内的LIB文件夹然后将“测试”目录,随意放置哪里,,运行EXE文件都OK 呵呵再次表示感谢呵呵把结果列出来,,也方便后面遇到类似问题的人,能有个参考!
     
      

  6.   

    老问题, 没有把用到的jar包添加到你的jar包里面, 可以手动打 也可以用工具比如 fatjar