Chinaunix首页 | 论坛 | 博客
  • 博客访问: 520021
  • 博文数量: 147
  • 博客积分: 10105
  • 博客等级: 上将
  • 技术积分: 1594
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-14 10:18
文章分类

全部博文(147)

文章存档

2011年(4)

2010年(4)

2009年(6)

2008年(5)

2007年(40)

2006年(88)

我的朋友

分类: Java

2006-11-27 11:26:02

 

创建本机跨平台 GUI 应用程序(重述): 在 Windows 上安装 GCJ 3.2

 

 

 

 


 


在本文中, 重述了该主题并讨论了对 Windows、GNOME 和 SWT 2.0 的支持。这一次,他使用 Ant 来演示如何自动构建您的本机应用程序,然后演示了如何将所有这些集成到 Eclipse IDE。

遵循以下指示信息,在您的环境中安装 GCJ 3.2。尽管 GCJ 3.3 可用于 Windows,但我还未对其进行充分测试。除非您喜欢冒险,否则我建议您使用 GCJ 3.2。
  1. 首先,需要一个解压缩 tar 文件的程序。如果没有,可以在本文的源代码(请参阅 参考资料)中获取必要的程序。将 Utilities\win32 目录下的文件复制到系统 PATH 中的某个目录下。

  2. 接下来,将以下所有文件下载到这一目录。注:该目录名或其任何父目录名都不应该包含空格:

  3. 在命令提示符下,切换至刚才下载文件所在的目录,然后执行以下命令:
    1. gunzip *.gz
    2. tar -xvf binutils-2.13.90-20021006-2.tar
    3. tar -xvf gcc-3.2-core-20020817-1.tar
    4. tar -xvf mingw-runtime-2.2.tar
    5. tar -xvf w32api-2.0.tar
    6. tar -xvf gcj-3.2-20021210-1.tar
    忽略任何您可能遇到的与文件许可权相关的警告。

  4. 这些已解压缩的文件中将有一个 bin 文件夹,该文件夹下包含所有的可执行文件(譬如 gcj.exe)。请确保将此文件夹添加到您的系统 PATH。

  5. 在命令提示符下,输入 gcj。如果所有内容都配置正确,则应该看到 gcj: no input files 。如果得到编译器找不到 libgcj.spec 的错误报告,那么请确保步骤 2中的目录名没有包含空格。此外,在任何父目录名中也不应该有空格。

 

 

 

用GCJ编译Java源文件成脱离JRE的exe可执行文件

http://iamin.blogdriver.com/iamin/1159221.html

一、下载GCJ
到 可以看到你有个版本
GCC/GCJ 3.4
GCC/GCJ 4.02
不管三七四十八,都下载下来先:)

二、解压检测,先来测试高版本的GCJ4.02
比如:E:\OpenSource\GCC4,可以看到有个gcc-4.0的目录
把 E:\OpenSource\GCC4\gcc-4.0\bin 这个目录加入到你的系统环境变量PATH当中
然后运行 gcj --help 可以看到帮助
再运行 gcj -v 可以看到当前的版本,如:
Thread model: win32
gcc version 4.0.2
这样说明你的准备环境没有问题了。

三、新建一个Java文件,如HelloGCJ.java文件
public class HelloGCJ
{
public static void main(String[] args)
{
   System.out.println("Hello GCJ!");
}
}

四、新建一个批处理文件J2E.bat,内容如下,放在bin目录下,或系统目录下
gcj -c %1.java -o %1.o
gcj --main=%1 -o %1 %1.o
%1

五、编译运行
J2E HelloGCJ

可以看到后成了HelloGCJ.o和HelloGCJ.exe文件,不过这个文件巨大,有8,883,481字节,比较恐怖:)用ASPack压缩一下,压缩率可以达到22%,剩下1,984,512字节,ASPack的压缩力倒是很强:)

========================================================================
现在开始测试GCJ 3.4
第一步,已经下载了
第二步,
解压到:E:\OpenSource\GCC3,可以看到有个gcc-3.4的目录
把 E:\OpenSource\GCC3\gcc-3.4\bin 这个目录加入到你的系统环境变量PATH当中
然后运行 gcj --help 可以看到帮助
再运行 gcj -v 可以看到当前的版本,如:
Thread model: win32
gcc version 3.4.0 20040316 (prerelease)
这样说明你的准备环境没有问题了。

第三步,一样,有了
第四步,一样,有了

第五步、编译运行
J2E HelloGCJ

同样是可以看到后成了HelloGCJ.o和HelloGCJ.exe文件,不过这个文件比刚才用4.02编译的要小很多,才5,167,559字节,我们再用ASPack压缩一下,压缩率可以达到17%,剩下898,560字节,更小了,小了一大半,但是要检测一下看有没有问题才行。
========================================================================

六、确认独立于JRE
为了确认是独立于JRE的,最好放到一个没有任何Java的环境下去跑一下,我有个Win98SE的虚拟机,这样一来就可以确认了
或者先这样来测试一下
PATH=;
这样是把PATH清空,当然无论怎么清空,在Windows下面还是会去找Windows的系统可执行目录的:)
set JAVA_HOME=
把JAVA_HOME也清空,然后再运行一下HelloGCJ.exe文件看看是否可以。

结果:在我的Windows 2000 ADS上面用4.02或3.4编译的或者编译后并ASPack过的都可以运行。
但是,在Windows 98 SE上面用4.02编译的或者编译后并ASPack过的都不能够运行!!!
所以,大家要用哪个版本自己选择。

结束语:这是最简单的一个测试,关于AWT、Swing、SWT、中文问题、线程、文件、IO等等可以参见附带的Samples
要运行Samples,先要找个下载make,并解压后把make.exe扔到bin目录下,然后打开Makefile文件
把是Unix/Linux下面的一些编译指令去掉,比如:rm、chmod、find之类的,等等,如第96行后面的 && chmod +x hang_posix.exe去掉
最后在Samples进行make一下就可以编译Samples了,还是要自己修改一下的,要不然编译还是有问题出现。
不过,要看一下ReadMe.txt文件哦,并不是所有的都能够运行:(
Not all of the samples are used in the testsuite. The GUI samples are built, but not executed.

========================================================================
上面我们下载的都是全打成包的文件,如果你想单独下载的话,可以直接到以下地址去下载

建议按时间排序一下,然后下载以下所需的包的最新的稳定版本。
binutils
gcc-core
gcc-java
iconv
make
mingw-runtime
w32api

下载后按照上述顺序将其解压到相同的目录,例如 E:\OpenSource\GCC\
然后将 E:\OpenSource\GCC\bin 加入 PATH 环境变量中
运行 gcj --help 可以看到帮助
再运行 gcj -v 可以看到当前的版本
出现版本信息说明你的准备环境没有问题了。

不过,千万注意了,也要下载 iconv 要不然根本就不行,而且编译后的.exe文件也必须要这个 iconv.dll 或 libiconv-2.dll 动态链接库的
如果下载 iconv-1.9.1.win32.zip 的话是 iconv.dll ,
下载 libiconv-1.8.0-2003.02.01-1.exe 安装的话是 libiconv-2.dll
iconv是一个语言转换工具。

我尝试过3.4.2、3.4.5版本的,想脱离 iconv 均没有成功:(,有成功的指点一下。




 
 
HelloGCJ.exe (626.0 K)


1.很古老的版本是可以脱离iconv ,但那样对UTF-8的支持就有问题了,更别指望中文了,所以放弃那个想法吧。
2.我压缩编译好的Exe的方法是 strip -s HelloGCJ.exe,然后Upx --best HelloGCJ.exe,这样压缩好的大小为:626 KB (641,024 字节)

3.至于用UPX压缩后的版本是否能在Windows98下使用倒没有测试过,不过应该没有问题,因为开源的PDFCreator和一个共享软件(下载专利的)都使用过我用这种方式编译的程序,分别为PDFEncrypt和PDFMerger,使用GCJ+iText来实现的。
我的网站上有一个新工具(免费),旋转PDF中每页的角度(支持90,180,270),有兴趣的可以看看,也是基于iText+Gcj
阅读(2135) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-12-30 13:22:47

你给的下载地址失效了...然后我现在在网上死活也找不到gcj,能不能劳烦传一份给我?sgq7613269@sina.com