Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

Java 应用程序启动器的使用文档

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]
结构
    java [ options ] class [ argument ... ]
    java [ options ] -jar file.jar [ argument ... ]
    javaw [ options ] class [ argument ... ]
    javaw [ options ] -jar file.jar [ argument ... ]
    oldjava [ options ] class [ argument ... ]
    oldjavaw [ options ] class [ argument ... ]
options
命令行选项。
class
要调用的类名。
file.jar
要调用的 jar 文件名。只与 -jar 一起使用。
argument
传给 main 函数的参数。
说明

java 工具启动 Java 应用程序。它通过启动 Java 运行时环境,装载指定的类并调用该类的 main 方法,从而实现此功能。main 方法必须有以下的用法说明:

    public static void main(String[])

缺省情况下,第一个非选项参数是要调用的类名。应当使用全限定类名。如果指定了 -jar 选项,那么第一个非选项参数是 JAR 归档文件的名称,该归档文件包含应用程序的类和资源文件以及 Main-Class 清单头指定的启动类。

Java 运行时环境在下面三个位置集中查找启动类和使用到的其它类:自举类路径、安装方式扩展和用户类路径。

类名或 JAR 文件名后的非选项参数被传递给 main 函数。

JAVA 和 OLDJAVA

下面是 javaoldjava 之间的区别:

  • oldjava 启动器不支持扩展机制。扩展包仍可用作类和资源归档文件。
  • oldjava 启动器对所有类都使用自举类加载器,而 java 启动器只对自举类使用自举类加载器。这使得与基本类加载器不兼容的编程技术得以存在。
  • java 中, -classpath-cp 选项用于指定用户类的搜索路径,它们不能用来指定自举类的位置。而在 oldjava 中,-classpath-cp 选项指定包括自举类在内的所有类的位置。

    注意: javaoldjavaCLASSPATH 环境变量的使用上不同之处。除非 CLASSPATH-classpath-cp 覆盖了,否则它总是指定用户类的位置,而不提供自举类的任何信息。

  • oldjava 启动器支持所有的 1.2 安全功能。但对于 oldjava 来说,从类路径加载的类没有保护域,因而在 java 启动器中只有自举类才拥有的所有权限它都拥有。

以下命令使用 oldjava

oldjava -classpath <path> ...

它等同于下述使用 java 的命令:

java -Xbootclasspath:<path> -Djava.ext.dirs= ...

上述两种情形中,<path> 都包含文件 rt.jar(有关 rt.jar 及其在 JDK 软件中的位置的说明,参见 JDK 文件结构文档)。

JIT

启动器的缺省行为是用“即时”编译器(或 JIT)执行字节码。缺省编译器位于 jre\bin\symcjit.dll 中。当加载类时,JIT 将类字节码转换成本机代码。使用 JIT 会导致在每个类加载后有短暂延迟,但可提高程序的总体性能。在某些情况下,执行时间可缩短十分之一。

如果禁用了 JIT ,解释器将直接执行字节码。有两种办法可将 JIT 禁用:

  • 用以下的 set 命令将环境变量 JAVA_COMPILER 设为 NONE
    C:\> set JAVA_COMPILER=NONE
    

    在 Windows NT 上,也可用系统控制面板设置 JAVA_COMPILER

  • -D 命令行选项将 java.compiler 设为 NONE
    C:\> java -Djava.compiler=NONE myapp
    

    使用命令行选项将覆盖 JAVA_COMPILER 环境变量的设置。

也可用 JAVA_COMPILERjava.compiler 来指定要使用另一个 JIT:

C:\> set JAVA_COMPILER=foo

C:\> java -Djava.compiler=foo myapp

.dll 扩展名加到 "foo" 后,该例中虚拟机将查找名为 foo.dll 的 JIT 编译器。搜索其它编译器是在 jre\bin 目录中和系统的 PATH (路径)上进行的。若找不到这样的编译器,虚拟机将缺省使用解释器。

选项

启动器有一组标准选项,当前的运行时环境支持这些选项并且将来的版本也将支持它们。还有一组其它的非标准选项是特定于目前的虚拟机实现的,将来可能要有变化。非标准选项以 -X 打头。

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:一种 Web 应用程序级别的 Cluster 实现技术   下一篇:VSFTPD的菜鸟篇

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号