» 您尚未 登录   注册 | 社区服务 | FTP中心 | 帮助 | 社区 | 无图版 | 测试百科  | 测试Blog 
软件测试基地论坛 -> 测试开发技术 -> [转帖]生成EXE文件问题
 XML   RSS 2.0   WAP 

--> 本页主题: [转帖]生成EXE文件问题 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题
Fastpoint


该用户目前不在线
级别: 总版主
精华: 44
发帖: 5033
基地声望: 390 点
基地币: 1689 Bug
基地贡献: 0 点
好评度: 15 点
在线时间:818(小时)
注册时间:2005-10-08
最后登录:2008-07-22
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子

[转帖]生成EXE文件问题

一般来说使用JSmooth可以把纯Java程序封装成windows的可执行文件。

如果你做的是SWT应用程序,那得需要写个Lancher来加载一些本地文件然后启动程序,下面是我在具体项目中写的样例代码,你可以参考一下:

CODE:

public class Lanucher {

public static void main(String[] args) {
  Runtime runtime = Runtime.getRuntime();
  String homePath = null;
  if (args.length > 0) {
    homePath = args[0];
  }

  if (homePath == null) {
    homePath = System.getProperty("user.dir");
  }

  if (homePath == null) {
    //如果主目录信息不存在, 则抛出错误, 然后关闭程序.
    System.err.println("错误:系统没有指定主目录路径, 请联系系统管理员.");
    execute(runtime, "pause");
  } else {

    System.out.println("1.使用主目录:" + homePath);

    //启动应用程序.
    String libPath = homePath + "/lib";
    File libFile = new File(libPath);
    File[] jarFiles = libFile.listFiles(new FilenameFilter() {
    public boolean accept(File dir, String name) {
      return name.endsWith(".jar") || name.endsWith(".JAR");
    }
    });
    String classpath = libPath;
    if (jarFiles != null) {
    for (int i = 0; i < jarFiles.length; i++) {
      String jarFilePath = jarFiles.getPath();
      System.out.println("2.添加库文件:" + jarFilePath);
      classpath += ";" + jarFilePath;
    }
    }
    String execute = ("\"" +
              homePath + "/jre/bin/java\" -classpath \"" +
              classpath + "\" -Djava.library.path=\"" +
              libPath + "\" com.yipsilon.lifestyle.Application " +
              homePath).replace('\\', '/');

    System.out.println("3.执行程序:" + execute);

    execute(runtime, execute);
  }
}

private static void execute(Runtime runtime, String command) {
  try {
    runtime.exec(command);
  } catch (IOException ioe) {
    //如果主目录信息不存在, 则抛出错误, 然后关闭程序.
    System.err.println("错误:执行主程序时出现错误.\n\n" + ioe.getMessage());
    try {
    runtime.exec("pause");
    } catch (IOException ignore) {
    }
  }
}
}


可不可不要这么样徘徊在目光内
你会察觉到我根本寂寞难耐
即使千多百个深夜曾在梦境内
我有吻过你这毕竟并没存在

人声车声开始消和逝
无声挣扎有个情感奴隶
是我多么的想她
但我偏偏只得无尽叹谓

其实每次见你我也着迷
无奈你我各有角色范围
就算在寂寞梦内超出好友关系
唯在暗里爱你暗里着迷
无谓要你惹上各种问题
共我道别吧别让空虚使我越轨
[楼 主] | Posted: 2006-02-09 13:01 顶端
Fastpoint


该用户目前不在线
级别: 总版主
精华: 44
发帖: 5033
基地声望: 390 点
基地币: 1689 Bug
基地贡献: 0 点
好评度: 15 点
在线时间:818(小时)
注册时间:2005-10-08
最后登录:2008-07-22
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



如果仅仅是做一个Wrapper的话,其实Eclipse本身的那个Launch就不错。也可以跨操作系统,嘿嘿。我喜欢它Linux下的那个二进制执行文件。

如果要做本地二进制可执行应用程序,就只能用GCJ和Excelsior-JET了,前者是开源项目,后者也有Crack放出来了。


可不可不要这么样徘徊在目光内
你会察觉到我根本寂寞难耐
即使千多百个深夜曾在梦境内
我有吻过你这毕竟并没存在

人声车声开始消和逝
无声挣扎有个情感奴隶
是我多么的想她
但我偏偏只得无尽叹谓

其实每次见你我也着迷
无奈你我各有角色范围
就算在寂寞梦内超出好友关系
唯在暗里爱你暗里着迷
无谓要你惹上各种问题
共我道别吧别让空虚使我越轨
[1 楼] | Posted: 2006-02-09 13:01 顶端

软件测试基地论坛 -> 测试开发技术




软件测试基地上海测仕信息技术有限公司旗下网站
Copyright © 2005-2007 Cntesting.com, All Rights Reserved
沪ICP备06057721号

Powered by PHPWind Code © 2003-06 PHPWind
Total 0.235066(s) query 5, Time now is:12-05 12:26, Gzip disabled
You can contact us


每日一句:Loading...