GCJ, GNU Java Compiler!

gcj是GNU的Java编译器,从FC4开始,Fedora Core开始提供一些可以使用的GCJ应用和环境。gcj可以用来编译Java源程序,生成字节码和目标代码。gcj基于GNU自己的运行库libgcj,它包含一个类库,垃圾收集器和字节码解释器。
FC4默认的遵守JPackage项目的规范,并且可以使用其他的JRE环境替代默认的JRE环境。从GCC4开始实行新的ABI接口,遵循的是Java语言标准,所以可以适应更多的应用。

利用gcj发布程序



利用gcj发布程序可以使用一些帮助程序,aot-compile-rpm可以把jar编译成一个软件包,并把库注册到全局的数据库中。

gcj支持编译成目标代码的发布,但是这样不一定总是有效,而字节码发布可以在JRE替代环境有效的情况使用,因此更加有用。

如何编译发布已有的Java应用

首先编译jar文件为本地代码
gcj -shared -findirect-dispatch -fjni -fPIC -Wl,-Bsymbolic       mypackage.jar       -o mypackage.jar.so

-shared -fPIC用来生动态库的参数;-Wl,-Bsymbolic连接器的连接参数;-findirect-dispatch 生成二进制兼容ABI的标志;-fjni使用JNI;

添加库到全局数据库查看全局库, gcj-dbtool -p用root用户添加, gcj-dbtool -a `gcj-dbtool -p` mypackage.jar mypackage.jar.so这时可以这样运行程序, java -cp mypackage.jar com.mypackage.Main

已经能够编译和运行的程序有Eclispe,Tomcat,Ant和Openoffice的Java程序部分。

这里只是关于GCJ环境的初步介绍,更多东西需要参看gcj的手册。

Comments

Popular posts from this blog

Freeware Software Top 300 from winAddons.Com!

What is DevOPS?

RPM Build Tips!