在Eclipse下用Java Socket类与GUI设计控件 SWT Designer做了个数据接收程序。调试程序运行是正常的。但是无论用Eclipse自带的Jar到处功能还是用Fat jar打包成一个jar后的jar文件都不能运行,并且没有任何错误提示。不知是什么原因。 
大家有没有遇到过这种情况?
该包含的支持包我都已经包含了,并且制定了main Class,以前打包过一个串口的程序,不知道这个是咋回事了:(

解决方案 »

  1.   

    Manifest-Version: 1.0
    Main-Class: server.ServerTerminal
    Class-Path: ./lib/org.eclipse.core.runtime_3.3.100.v20070530.jar 
     ./lib/org.eclipse.swt.win32.win32.x86_3.3.0.v3346.jar 
     ./lib/org.eclipse.jface_3.3.0.I20070606-0010.jar 
     ./lib/org.eclipse.equinox.common_3.3.0.v20070426.jar 
     ./lib/jtds-1.2.2.jar 
     ./lib/org.eclipse.core.commands_3.3.0.I20070605-0010.jar 
     ./lib/org.eclipse.equinox.registry_3.3.0.v20070522.jar 
     ./lib/org.eclipse.jface.text_3.3.0.v20070606-0010.jar 
     ./lib/org.eclipse.osgi_3.3.0.v20070530.jar 
     ./lib/org.eclipse.text_3.3.0.v20070606-0010.jar 
     ./lib/org.eclipse.ui.forms_3.3.0.v20070511.jar 
     ./lib/org.eclipse.ui.workbench_3.3.0.I20070608-1100.jar
      

  2.   

    你需要一个 META-INF/MANIFEST.MF 文件
    请参考这2篇文章,
    http://www.java2000.net/viewthread.jsp?tid=156

    http://www.java2000.net/viewthread.jsp?tid=157
      

  3.   

    你到命令行去运行看看java -jar myjar.jar 
      

  4.   

    manifest文件如上,本来我是用Eclipse直接导出的,jar目录下生成了一个lib子目录,保存了用到的上述文件中的包。 另外参照一些网上对SWT designer打包的经验,将swt-win32-3346.dll解压出来放到了jar目录下。
    以前这样打包另一个程序时是没问题的。
      

  5.   

    你在
    server.ServerTerminal  的main的第一行,加上
    System.out.println("I am here!");
    看看吧! 呵呵!
    如果命令行能出现,证明程序没有问题。应该是缺少参数或配置文件,造成你得程序自己判断后,退出了!!
      

  6.   

    TO java2000_net
    不好意思,我以前用的是 javaw命令,那是没有反应的。
    用java命令提示:
    java.lang.NullPointerException
        at server.ClassPathUtil.getClassPath(ClassPathUtil.java:7)
        at server.ServerTerminal.<init>(ServerTerminal.java:60)
        at server.ServerTerminal.main(ServerTerminal.java:410)
    这意思是不是因为ClassPath设置不对呢?
    可调试的时候是正常的啊,另外ClassPath需要怎么舍呢?
      

  7.   

    ServerTerminal.java:60查代码去吧! 第60行记得,在jar里面读取资源,可不能简单的File file = new File("1234.txt"); 这样可不行的。
      

  8.   

    嗯,是有个property的配置文件。敢再麻烦一下,如果打包出来,而config文件夹想留在jar外面如何在程序里设置呢?
      

  9.   

    放在jar里面,然后通过如下方式读取URL   =   new   URL(this.getClass().getClassLoader().getResource("/file/1234.gif"));  
       
     有了URL   剩下的,你自己搞吧! 原文在
    http://www.java2000.net/viewthread.jsp?tid=160也就这几行。
      

  10.   

    帮不上忙
    省事点用 fatjar打包试试吧