java 执行jar 包里面 main class

方式(1):
java -Djava.ext.dirs=lib -cp giant-storm.jar com.giant.storm.test.hbase.ItemDMLUtils


注意:当需要使用java安装目录下的 jre/lib/ext 中的包的时候,-Djava.ext.dirs=xxx 会不读取系统jre的拓展包。深坑。。。。。

JAVA 对应的系统属性:

  java.home   Java   的安装目录     
  java.class.version   Java   类格式的版本号     
  java.class.path   Java   类的查找路径     
  java.io.tmpdir   默认的临时目录     
  java.compiler   Java   所使用的及时编译器     
  java.ext.dirs   Java   扩展包的目录       
  java.library.path  系统搜索库文件的路径
  os.name   操作系统的名称
  os.arch   操作系统的体系结构     
  os.version   操作系统的版本     
  file.separator   文件分隔符(Unix   下为'/')     
  path.separator   路径分隔符(Unix   下为':')     
  line.separator   换行符(Unix   下为'\n')     
  user.name   用户帐号名     
  user.home   用户目录     
  user.dir   用户当前的工作目录 


方式(2)

使用Bootstrap Classloader来加载这些类。
 
我们可以在运行时使用如下参数:
 
-Xbootclasspath:完全取代系统Java classpath.最好不用。
-Xbootclasspath/a: 在系统class加载后加载。一般用这个。
-Xbootclasspath/p: 在系统class加载前加载,注意使用,和系统类冲突就不好了.
win32    java -Xbootclasspath/a:some.jar;some2.jar;  -jar test.jar
或者
	 java -Xbootclasspath/a:some.jar;some2.jar;  -cp test.jar com.giant.test.TestKeberos
unix          java -Xbootclasspath/a:some.jar:some2.jar:  -jar test.jar
win32系统每个jar用分号隔开,unix系统下用冒号隔开

例子:
进入当前目录:
java -Xbootclasspath/a:commons-configuration-1.6.jar:commons-lang-2.5.jar:commons-logging-1.1.1.jar:guava-11.0.2.jar:hadoop-auth-2.0.0-cdh4.2.0.jar:hadoop-common-2.0.0-cdh4.2.0.jar:log4j-1.2.17.jar:slf4j-api-1.4.3.jar:slf4j-log4j12-1.4.3.jar  -cp test.jar com.giant.test.TestKeberos


即可运行 TestKeberos 这个主方法。




依赖包放在lib下 。详细参数见下:

用法: java [-options] class [args...]
           (执行类)
   或  java [-options] -jar jarfile [args...]
           (执行 jar 文件)
其中选项包括:
    -d32          使用 32 位数据模型 (如果可用)
    -d64          使用 64 位数据模型 (如果可用)
    -server       选择 "server" VM
    -hotspot      是 "server" VM 的同义词 [已过时]
                  默认 VM 是 server.

    -cp <目录和 zip/jar 文件的类搜索路径>
    -classpath <目录和 zip/jar 文件的类搜索路径>
                  用 ; 分隔的目录, JAR 档案
                  和 ZIP 档案列表, 用于搜索类文件。
    -D<name>=<value>
                  设置系统属性
    -verbose[:class|gc|jni]
                  启用详细输出
    -version      输出产品版本并退出
    -version:<value>
                  需要指定的版本才能运行
    -showversion  输出产品版本并继续
    -jre-restrict-search | -no-jre-restrict-search
                  在版本搜索中包括/排除用户专用 JRE
    -? -help      输出此帮助消息
    -X            输出非标准选项的帮助
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  按指定的粒度启用断言
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  禁用具有指定粒度的断言
    -esa | -enablesystemassertions
                  启用系统断言
    -dsa | -disablesystemassertions
                  禁用系统断言
    -agentlib:<libname>[=<options>]
                  加载本机代理库 <libname>, 例如 -agentlib:hprof
                  另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help
    -agentpath:<pathname>[=<options>]
                  按完整路径名加载本机代理库
    -javaagent:<jarpath>[=<options>]
                  加载 Java 编程语言代理, 请参阅 java.lang.instrument
    -splash:<imagepath>
                  使用指定的图像显示启动屏幕


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值