几个月前自己用swt写了个小程序,突然今天冒出了个脱离JRE运行的想法,于是开始百度,google。最后终于找到了解决方案。
GCJ可以把JAVA程序编译成本地代码,编译成功后的exe文件不再需要JRE就可直接运行,GCJ通常是作为本地代码编译器来使用,它也可以编译为Java字节码,因此可以作为javac的替代品。
MinGW是指只用自由软件来生成纯粹的Win32可执行文件的编译环境,它是Minimalist GNU on Windows的略称。这里的“纯粹”是指「使用msvcrt.dll的应用程序」。无法使用MFC (Microsoft Foundation Classes)。 MinGW:即Minimalist GNU for Windows。它是一些头文件和函数库的集合,该集合允许人们在没有第三方动态链接库的情况下使用GCC(GNU Compiler C)产生Win32程序。 MinGW主要由GNU binary utilities、GCC和GDB组成。同时还包括一些必要的库,例如libc(C Runtime),及专门用于Win32环境的API接口库。如果你想学习linux环境下的编程,而又不想装linux,那你就装一个MinGW吧。 MSYS:Minimal GNU(POSIX)system on Windows,是一个小型的GNU环境,包括基本的bash,make等等。是Windows下最优秀的GNU环境。(是否厌倦了Cygwin蜗牛般的shell环境,试试MSYS中的rxvt吧) MinGW & MSYS的主页:http://mingw.sourceforge.net/
很遗憾ibm上面这篇文章被删掉了
http://www-106.ibm.com/developerworks/java/library/j-nativegui2/
大家可以看这篇,Kirk Vogen 先生伟大的文章,我相信这篇文章影响这很多人不过是2003年写的文章,一些代码已经不再适用,而且文章的附件也已经无法下载了,遗憾啊。
http://www-128.ibm.com/developerworks/cn/java/j-nativegui2/index.html
javaeye上面比较新的帖子2006年的,比较不错的了
http://www.javaeye.com/topic/19439
同样是javaeye最经典的帖子,我敢说超级经典
http://www.javaeye.com/topic/1566
下面这个来自bea社区的
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=124&threadID=33487
别人说过的我就不再重复了,下面我补充一下上面这些帖子里没用提到的东西
如果要使用iconv的话使用下面的地址下载才是基于windows的
http://www.zlatkovic.com/pub/libxml/iconv-1.9.1.win32.zip
GCJ现在面临着的最大问题就是SWT的libswt.a如何生成,如果自己生成,SWT现在新加了很多类升级很快而GCJ升级的很慢,许要打更多的path,这部分path恐怕不是普通程序员可以完成的,目前可以提供此path的网站是
http://www.thisiscool.com/gcc_mingw.htm最新支持到swt-win32-3218.dll
下面这个pdf时代比较久远了不过还是很有用的。
http://www.cs.umanitoba.ca/~eclipse/6-Compiling.pdf
除此之外我还找到一个地方支持swt的gcj
http://jnc.mtsystems.ch/
不过他们的产品好像是收费,我试用了下,生成出来的exe启动的时候会有他们的广告。
搜索来的很多文章时代都比较久远了,很多方法都不在试用了,我建议直接使用
http://www.thisiscool.com/gcc_mingw.htm的最新版本gcc43ecj-20061207.tar.bz2,用它来生成exe,配置使用起来都非常简单,不过一旦使用本地编译很多本来正确的语法都不能正常编译了,所以最后我选择放弃了,郁闷搞了这么多小时得出这么一个结果。希望GCJ更新快些