页面

2008-07-21

GCJ使用要点

因为Java已经走上开源道路,所以GNU开发的相关Java环境基本上已经寿终正寝了,因为GCJ啥的从来就没成熟过,所以用夭折这个词可能更合适。以下是本人积累的GCJ使用经验,立此存照。
  1. 路径选项只有
    javac -C -classpath /home/wu/java/box2 java/box1/com1/mainer/A.java
    或者配置CLASSPATH环境变量通过(--classpath != -classpath很奇怪)。
  2. CLASSPATH选项可能只是与built-in路径拼合:/sys/java + userFolder/java = /sys/java/userFolder/java != /sys/java:userFolder/java。
  3. 路径路径就是指定的x:y:z元中包含有p1/p2/c1.class这样的目录结构,其中c1.class的源文件包定义如下:package p1.p2;。并且x、y、z可以是目录、zip、jar。
  4. 运行成功的执行命令:
    java -classpath java/box1:java/lib2.jar com1.mainer.A
    此时A.class没有打入jar包,由-classpath参数第一节确定,第二节确定A中引用的类com2.ut.P,lib2.jar结构为:com2/ut/P.class。
  5. 打入jar包的类集合可以通过menifest文件指定classpath、入口主类,比如现定义menifest.txt:
  6. Manifest-Version: 1.0
    Ant-Version: Apache Ant 1.7.0
    Created-By: 1.4.1_01-b01 (Sun Microsystems Inc.)
    Main-Class: jade.Boot
    Class-Path: jadeTools.jar commons-codec\commons-codec-1.3.jar http.jar

    打包指令:
    jar -cvfm a.jar menifest.txt -C foo/ .(以menifest.txt作为menifest文件,把foo下所有类打包)
    执行:
    java -jar a.jar
    就可以自动配置类路径、调用入口类。
  7. gnu/gij通过jar参数启动jar包类时确实会忽略-classpath参数(4.1.2时仍是如此),此时必须通过jar menifest指定类路径。如:
    Class-Path: jadeTools.jar commons-codec\commons-codec-1.3.jar http.jar
    或者不通过jar参数启动jar包:
    gij --classpath jade.jar:jadeTools.jar jade.Boot

没有评论: