方式(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>
使用指定的图像显示启动屏幕