我这有一个j2se桌面应用程序,在eclipse下可以运行,也没有错误,但是打成jar包以后就不能运行了,想请教各位,我想用
installshield把jar包打成安装程序,是不是一定要jar包可以运行,才可以啊 ,

解决方案 »

  1.   

    分2步来检查
    1. 将程序脱离Eclipse,打成jar是否可以运行?
    2. 做成安装程序后,再检查安装后是否能运行?如果第1步,不能运行,做第2不就没意义了!
    当然,也可以不用jar,直接运行class,这样做安装时,需加入的文件就太多了。但也需要先保证脱离Eclipse能运行
      

  2.   

    用fatjar这个插件打包,然后打包的时候有一步是选main类的,还有就是注意文件夹,图片等的路径。
      

  3.   

    你在打包的时候有没有指定主函数啊,如果没有指定jar肯定运行不了 
      

  4.   

    做打包程序的的时候 ,注意要选main  和自己要加载的主要内容和文件啊!!
      

  5.   

    主函数已经选择了,但是不能运行jar包,这个程序用了很多动态链接库,有很多判断文件路径的方法,只要是遇到读取文件的时候就不能运行,但是读出来的路径和jar包的路径是一样的,没有错误,
      

  6.   

    读取文件用绝对路径读取,jar文件中可能会出现读取资源文件的问题,一般都用绝对路径访问,别用相对路径(也可以但是很麻烦)。1、你将所有资源打包为andy.jar,你的类位于一个包中:package andycpp;你的图片资源全部放在images文件夹中,而images文件夹也位于andycpp包内。这样的话,最终的路径表现为: 
    andy.jar 
        |__andycpp 
                 |__  GUITest.class 
                 |__  images 
                             |__ Snap1.jpg 
    因为图片文件夹和引用他的类位于同一个层次,因此可以通过相对路径来访问: getResource()方法,但是你不能随便用,你只能使用和图片文件夹处于同一层次的类的getResource()方法。比如上图中,GUITest类和images处于同一层次,所以要使用该类的getResource()方法。     java.net.URL imgURL = GUITest.class.getResource("images/Snap1.jpg"); 
              ImageIcon img1 = new ImageIcon(imgURL); 2、另一种情况,如果你的类有很多,并且包结构很复杂,那么你就不大可能把图片和类放在同一个层次上,而是应该把图片放到最外层,让所有的类通过绝对路径来访问该图片!Jar文件内部对大小写是敏感的,因此,如果图片本身叫做snap1.jpg,你把路径写成images/Snap1.jpg,那么结果将找不到该图片。还要注意的是,每个类(注意,不是对象)都有一个 
    andy.jar 
        |__andycpp 
                 |__  GUITest.class 
        |__  images 
                 |__ Snap1.jpg 
    代码如下: 
    java.net.URL imgURL = GUITest.class.getResource("/images/Snap1.jpg"); 
    ImageIcon img1 = new ImageIcon(imgURL); 
    大家看到和上述代码的区别了吗?区别非常细微,仅仅是在“images”的前面加了一个反斜杠"/",这个反斜杠就表示根目录,没有反斜杠就表示相对路径。
    3.File f= new File("查找的文件相对路径");
     f.getAbsolutepath();(好像是这个)我建议用第三种方法,简单。