用eclipse写了一个swt程序,现在要将它打包发布,但用eclipse自带的打包工具打包后不能运行,使用Fat Jar打包后也不行。请问如何使SWT程序打包后可以运行?

解决方案 »

  1.   

    启动类没写好,设置好写一个带main函数启动swt窗口的类,打包的时候还要把它设成启动类
      

  2.   

    启动类设置了,运行jar包时错误信息如下
    Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-win32-3139 in
    java.library.path
            at java.lang.ClassLoader.loadLibrary(Unknown Source)
            at java.lang.Runtime.loadLibrary0(Unknown Source)
            at java.lang.System.loadLibrary(Unknown Source)
            at org.eclipse.swt.internal.Library.loadLibrary(Library.java:123)
            at org.eclipse.swt.internal.win32.OS.<clinit>(OS.java:18)
            at org.eclipse.swt.widgets.Display.<clinit>(Display.java:125)
            at GTL.main(GTL.java:227)
      

  3.   

    把swt-win32-3139.dll文件放到jar运行包的同一个目录下
      

  4.   

    文章地址忘发了http://www.360doc.com/showWeb/0/0/19227.aspx
      

  5.   

    没有将swt-win32-3139.dll加入到运行时的classpath中.
    将dll拷贝到运行路径的目录下;
    再运行,如javaw -classpath "./swt-win32-3139.dll;....加入其他jar" SWT程序 
    若还有问题请将目录列出来
      

  6.   

    我的网站上有详细的方法,你可以看看JAVA资料->查询“JAVA程序打包简介”═══════════════════
     免费的源码、工具网站,欢迎大家访问!
     http://www.j2soft.cn/
    ═══════════════════
      

  7.   

      我也是遇到了同样的问题,用Fatjar打完包,点击运行,没有反应。我感觉是应该是从jre的虚拟机上运行了。但是这样会报错的。应该是从SWT的控制台运行。