1.8jdk自带的小工具梳理【linux】

1. appletviewer  用于运行并浏览applet小程序。【时代的眼泪,没什么卵用】

2. ControlPanel 依然和客户端在网页运行小程序applet相关。。。一堆功能然并卵 

3. extcheck 检测jar包冲突.. [仅限于jre/lib/ext/包下的冲突..  一般也不会去对jre做扩展...  没什么卵用]

4. idlj    IDL转Java编译器  IDL和CORBA相关.. 一般也用不到

5. jar    jar文件管理工具,主要用于打包压缩、解压jar文件。   

jar命令格式:jar {c t x u f }[ v m e 0 M i ][-C 目录]文件名...
 
其中{ctxu}这四个参数必须选选其一。[v f m e 0 M i ]是可选参数,文件名也是必须的。
 
-c  创建一个jar包
-t 显示jar中的内容列表
-x 解压jar包
-u 添加文件到jar包中
-f 指定jar包的文件名
-v  生成详细的报造,并输出至标准设备
-m 指定manifest.mf文件.(manifest.mf文件中可以对jar包及其中的内容作一些一设置)
-0 产生jar包时不对其中的内容进行压缩处理
-M 不产生所有文件的清单文件(Manifest.mf)。这个参数与忽略掉-m参数的设置
-i    为指定的jar文件创建索引文件
-C 表示转到相应的目录下执行jar命令,相当于cd到那个目录,然后不带-C执行jar命令
 

6. jarsigner  jar密钥签名工具。 jarsigner工具主要有以下两个作用:
                a.对JAR文件签名
                b.校验签名以及签名JAR文件的完整性

http://blog.csdn.net/ygc87/article/details/7621037

7. java    运行已编译完成的类

一、运行class文件 
java <包名>.CLASS文件名
二、运行jar文件中的class 
java -cp XXX.jar <包名>.CLASS文件名
三、显示默认jdk版本信息 
java -version 
四、其他参数
1>.标准选项  这些是JVM的所有实现都支持的最常用的选项。
1. -agentlib:libname [= options ] 用于装载本地lib包 
栗子: -agentlib:hprof=cpu=samples,interval=20,depth=3
     -agentlib:jdwp=transport=dt_socket,server=y,address=8000
2. -agentpath:<pathname>[=<options>]
设置虚拟机按全路径装载本地库,不再搜索PATH中的路径。其他功能和agentlib相同
3. -client       选择 "client" VM Windows默认
4. -server     选择 "server" VM  linux默认
5. -D<propertyName>=value
在虚拟机的系统属性中设置属性key/value对,运行在此虚拟机之上的应用程序可用System.getProperty(“propertyName”)得到value的值。
6. -d32  在32位环境中运行应用程序。
7. -d64  在64位环境中运行应用程序。
8. -disableassertions[:<packagename>...|:<classname>]
用来设置虚拟机关闭断言处理
9. -da [:[ packagename ] ... |:classname ]
禁用断言。默认情况下,所有包和类中的断言都被禁用。
10.-dsa | -disablesystemassertions 使系统级断言不可用
11. -enableassertions [:[ packagename ] ... |:classname ]
    -ea [:[ packagename ] ... |:classname ]
    启用断言。默认情况下,所有包和类中的断言都被禁用。
12. -enablesystemassertions
    -esa
    在所有系统类中启用断言。
13. -jar 
14. -javaagent:<jarpath>[=<options>] 虚拟机启动时装入java语言设备代理
15. -jre-restrict-search | -jre-no-restrict-search  在版本搜索的时候,包含/排除用户私人的JRE
16. -showversion 显示版本信息并继续执行应用程序。此选项等同于该-version选项
17. -splash:imgname 启动画面
18.  -verbose[:class|gc|jni]在输出设备上显示虚拟机运行信息。
    verbose和verbose:class含义相同,输出虚拟机装入的类的信息,显示的信息格式如下:
    [Loaded java.io.FilePermission$1 from shared objects file] 当虚拟机报告类找不到或类冲突时可用此参数来诊断来查看虚拟机从装入类的情况。
    -verbose:gc 在虚拟机发生内存回收时在输出设备显示信息,格式如下:
    [Full GC 268K->168K(1984K), 0.0187390 secs]该参数用来监视虚拟机内存回收的情况。
    -verbose:jni 在虚拟机调用native方法时输出设备显示信息,格式如下:
    [Dynamic-linking native method HelloNative.sum ... JNI]该参数用来监视虚拟机调用本地方法的情况,在发生jni错误时可为诊断提供便利。

2>.非标准选项 非标准选项是特定于Java HotSpot Virtual Machine的通用选项,不能保证所有JVM实现都支持 -X
1. -Xbatch 虚拟机的缺省运行方式是在后台编译类代码,然后在前台执行代码,使用-Xbatch参数将关闭虚拟机后台编译,在前台编译完成后再执行
2. -Xbootclasspath:path -Xbootclasspath/a:path -Xbootclasspath/p:path 改变虚拟机装载缺省系统运行包rt.jar而从-Xbootclasspath中设定的搜索路径中装载系统运行类。除非你自己能写一个运行时,否则不会用到该参数。
    /a:将在缺省搜索路径后加上path 中的搜索路径。
    /p:在缺省搜索路径前先搜索path中的搜索路径。
3. -Xcheck:jni 对JNI函数执行检查
4. -Xcomp 强制首次调用方法进行汇编。默认情况下,客户机VM(-client)执行1,000个解释方法调用,并且服务器VM(-server)执行10,000个解释方法调用以收集有效编译的信息。指定该-Xcomp选项将禁用解释性方法调用以牺牲效率来提高编译性能
5. -Xdebug 预留
6. -Xdiag 显示其他诊断消息
7. -Xfuture 启用严格的类文件格式检查,强制严格遵守类文件格式规范
8. -Xint 以仅解释模式运行应用程序。禁用JIT
9. -Xinternalversion  -version 的进阶版
10. -Xloggc:<file> 将虚拟机每次垃圾回收的信息写到日志文件中,内容和-verbose:gc输出内容相同
11. -Xmaxjitcodesize  JIT编译代码的最大代码高速缓存大小
12. -Xmixed 设置-client模式虚拟机对使用频率高的方式进行Just-In-Time编译和执行,对其他方法使用解释方式执行。该方式是虚拟机缺省模式。
13. -Xmn<size> 设置young 堆的初始和最大大小
14. -Xms<size> 设置虚拟机可用内存堆的初始大小
15. -Xmx<size> 指定内存分配池的最大大小
16. -Xnoclassgc 关闭虚拟机对class的垃圾回收功能。
17. -Xprof 输出CPU运行时的诊断信息。
18. -Xrs 减少虚拟机中操作系统的信号(singals)的使用。该参数通常用在虚拟机以后台服务方式运行时使用(如Servlet)
19. -Xshare:off  尽可能不去使用共享类的数据
    -Xshare:auto 尽可能的使用共享类的数据
    -Xshare:on  尽可能的使用共享类的数据,否则运行失败
20. -XshowSettings:all|locale|properties|vm  显示设置并继续。
21. -Xss<size> 设置线程堆栈大小
22. -Xusealtsigs 使用替代信号,而不是SIGUSR1和SIGUSR2这些JVM内部信号
23. -Xverify:remote|all|none 设置字节码验证器的模式。

3>.高级运行时选项  控制Java HotSpot VM的运行时行为 -XX
1. -XX:+CheckEndorsedAndExtDirs 这个选项将会阻止java命令运行应用,除非没有用到endorsed-standards override机制和扩展机制。这个选项会检查应用是否使用了下面的机制之一:
    java.ext.dirs或者java.endorsed.dirs属性被设置
    lib/endorsed目录存在且不为空
    lib/ext目录中包含除了JDK中之外的JAR
    系统范围的特定于平台的扩展目录包含任何JAR文件
2. -XX:+DisableAttachMechanism 此选项将禁止工具连接到JVM,默认,这个选项是关闭的。也就是说允许工具连接之JVM,所以你可以使用jcmd、jstack、jmap和jinfo等命令。
3. -XX:ErrorFile=filename 指定一个目录和文件,当不可恢复的错误发生的时候,用来存储错误的数据。
4. -XX:+FailOverToOldVerifier 当新的类型检查其验证失败的时候,使用老的验证器。 默认这个功能是关闭的。如果使用老的字节码版本的话,可以开启这个选项。
5. -XX:+UnlockCommercialFeatures -XX:+FlightRecorder  
    1.启动JFR
    登陆服务器,找到应用PID,执行命令:jcmd $PID JFR.start name=abc,duration=120s
    2.Dump JFR
    等待至少duration(本文设定120s)后,执行命令:jcmd $PID JFR.dump name=abc,duration=120s      filename=abc.jfr(注意,文件名必须为.jfr后缀)
    3.检查JFR状态
    执行命令:jcmd $PID JFR.check name=abc,duration=120s
    4.停止JFR
    执行命令:jcmd $PID JFR.stop name=abc,duration=120s
    5.JMC分析
    切回开发机器,下载步骤3中生成的abc.jfr,打开jmc,导入abc.jfr即可进行可视化分析
6. -XX:-FlightRecorder 禁用JFR
7. -XX:LargePageSizeInBytes=size 设置堆内存页的最大尺寸。这个参数必须是2的幂。
8. -XX:MaxDirectMemorySize=size  设置NIO的直接缓存最大容量。
9. -XX:NativeMemoryTracking=off|summary|detail 指定追踪JVM本地方法使用的模式 
10. -XX:ObjectAlignmentInBytes=alignment 设置java对象的内存对齐,默认是8字节,指定的值必须是2的幂,且必须在8和256之间。这个选项使得压缩指针成为可能
11. -XX:OnError=string 设置自定义的命令使用分号隔开,当发生不可恢复的错误时执行,如果命令包含空格就需要使用引号括起来。 下面的例子展示了当发生错误的时候运行userdump.exe命令。-XX:OnError="userdump.exe %p"
12. -XX:OnOutOfMemoryError=string 设置自定义的命令使用分号隔开,当发生内存溢出错误时执行,如果命令包含空格就需要使用引号括起来。 
13. -XX:+ PerfDataSaveToFile 如果启用,则在Java应用程序退出时保存jstat数据。该二进制数据保存在一个名为的文件中hsperfdata_<pid>
14. -XX:+PrintCommandLineFlags 输出JVM设置的选项和值,比如:堆大小、垃圾回收器等。默认这个选项是关闭的
15. - -XX:+PrintNMTStatistics 如果-XX:NativeMemoryTracking选项开启,那么这个选项会在JVM退出的时候打印本地内存的收集数据。默认这个选项是关闭的。 
16. -XX:+RelaxAccessControlCheck 减少访问控制检查,默认这个选项是关闭的。
17. -XX:+ResourceManagement 在程序运行期间,启动资源管理。
18. -XX:ResourceManagementSampleInterval=value (milliseconds) 设置资源管理的采样间隔。 只有在 -XX:+ResourceManagement 选项开启的情况下,才能使用这个选项
19. -XX:SharedArchiveFile = path 指定类数据共享(CDS)归档文件的路径和名称
20. -XX:SharedClassListFile = file_name 指定包含要存储在类数据共享(CDS)归档中的类文件的名称的文本文件。
21. -XX:+ShowMessageBoxOnError 
当JVM发生不可恢复的错误的时候,弹出一个框。这会阻止JVM退出,这时我们可以连接JVM来调试引发JVM退出的原因。默认这个选项是关闭的
22. -XX:StartFlightRecording = parameter = value
启动Java应用程序的JFR记录。这是一个与-XX:+UnlockCommercialFeatures选项配合使用的商业功能。此选项等效于JFR.start在运行时开始录制的诊断命令
23. -XX:ThreadStackSize=size 设置线程栈大小。默认值依赖于机器内存
24. -XX:+TraceClassLoading 启动类加载跟踪,当类加载的时候输入该类,默认这个选项是关闭的。
25. -XX:+TraceClassLoadingPreorder 按照引用顺序跟踪类加载。默认这个选项是关闭的。
26. -XX:+TraceClassResolution 跟踪常量池。默认这个选项是关闭的。
27. -XX:+ TraceClassUnloading启用在卸载时跟踪类。默认这个选项是关闭的。
28. -XX:+ TraceLoaderConstraints 启用跟踪加载器约束记录。默认这个选项是关闭的。
29. -XX:+UnlockCommercialFeatures 使用商业功能。
30. -XX:+ UseAltSigs 使得能够使用替代信号
31. -XX:+ UseAppCDS 启用应用程序类数据共享(AppCDS)。要使用AppCDS,还必须为选项-XX:SharedClassListFile和-XX:SharedArchiveFileCDS转储时间(见选项-Xshare:dump)和应用程序运行时间指定值
32. -XX:-UseBiasedLocking 禁止使用偏置锁定。具有大量无限制同步的一些应用程序可以在启用该标志的情况下获得显着的加速,而具有某些锁定模式的应用程序可能会看到减速。
33. -XX:-UseCompressedOops 禁用使用压缩指针。默认情况下,启用此选项
34. -XX:+ UseHugeTLBFSLinux的这个选项等同于指定-XX:+UseLargePages。默认情况下禁用此选项。当预留内存时,此选项将预先分配所有内存分页; 因此JVM不能动态增长或缩小大内存分页内存区域
35. -XX:+ UseLargePages启用大内存分页的使用。默认情况下,禁用此选项
36. -XX:+UseMembar 在线程状态转化时使用内存栅栏。这个值默认是关闭的
37. -XX:+UsePerfData 此选项默认启用以允许JVM监视和性能测试,默认是开启的。如果要关闭则使用-XX:-UsePerfData
38. -XX:+ UseTransparentHugePages 在Linux上,可以使用可以动态增长或缩小的内存分页。默认情况下禁用此选项。
39. -XX:+AllowUserSignalHandlers 允许应用使用信号处理器, 默认是不允许的。

4>.高级JIT编译器选项 控制由Java HotSpot VM执行的动态即时(JIT)
1.  -XX:+ AggressiveOpts 可以使用积极的性能优化功能,预计在即将发布的版本中将会成为默认的。默认情况下,此选项被禁用,并且不使用实验性能特征。
2.  -XX:AllocateInstancePrefetchLines = lines 设置在实例分配指针之前预取的行数。默认情况下,预取行数设置为1
3.  -XX:AllocatePrefetchDistance = size 设置对象分配的预取距离的大小(以字节为单位)。要从新对象的值写入的内存将从最后分配的对象的地址开始预留到此距离。每个Java线程都有自己的分配点。
4.  -XX:AllocatePrefetchInstr = 指令将预取指令设置为在分配指针前面进行预取 默认0
5.  -XX:AllocatePrefetchLines = lines通过使用在编译代码中生成的预取指令,设置最后一个对象分配后要加载的高速缓存行的数量。如果最后一个分配的对象是一个实例,默认值为1,如果是一个数组,则为3。
6.  -XX:AllocatePrefetchStepSize = size设置顺序预取指令的步长(以字节为单位)。附加信件k或K指示千字节,m或M指示兆字节,g或G表示千兆字节。默认情况下,步长设置为16字节:
7.  -XX:AllocatePrefetchStyle = style 为预取指令设置生成的代码样式。的风格参数是从0至3的整数:
    0 不生成预取指令。
    1 每次分配后执行预取指令。这是默认参数。
    2 使用线程本地分配块(TLAB)水印指针来确定何时执行预取指令。
    3 在SPARC上使用BIS指令进行分配预取。
8.  -XX:+ BackgroundCompilation 启用后台编译。此选项默认启用
9.  -XX:CICompilerCount = 线程 设置用于编译的编译器线程数。默认情况下,服务器JVM的线程数设置为2,客户端JVM的线程数设置为1,如果使用分层编译,则将其缩放为核心数。
10. -XX:CodeCacheMinimumFreeSpace = size 设置编译所需的最小可用空间(以字节为单位)
11. -XX:CompileCommand = command,method [,option ] 指定一个方法执行的命令。
12. -XX:CompileCommandFile = filename 设置读取JIT编译器命令的文件
13. -XX:CompileOnly = 方法 设置应限制编译的方法列表(以逗号分隔)。只有指定的方法将被编译。使用完整的类名(包括包和子包)指定每个方法。
14. -XX:CompileThreshold = 调用 在编译之前设置解释方法调用的数量。默认情况下,在服务器JVM中,JIT编译器执行10,000个解释方法调用,以收集有效编译的信息。对于客户端JVM,默认设置为1,500个调用
15. -XX:+ DoEscapeAnalysis 允许使用逃生分析。此选项默认启用。
16. -XX:InitialCodeCacheSize = size 设置初始代码缓存大小(以字节为单位)。
17. -XX:+Inline 启用方法内联。此选项默认启用以提高性能。
18. -XX:InlineSmallCode = size 为内嵌的编译方法设置最大代码大小(以字节为单位)。
19. -XX:+ LogCompilation 将编译活动记录到hotspot.log当前工作目录中命名的文件中。您可以使用该-XX:LogFile选项指定其他日志文件路径和名称。默认情况下,禁用此选项,并且不记录编译活动
20. -XX:MaxInlineSize = size 设置要内联的方法的最大字节代码大小(以字节为单位)。
21. -XX:MaxNodeLimit = nodes  设置在单个方法编译期间要使用的最大节点数。默认情况下,最大节点数设置为65,000
22. -XX:MaxTrivialSize = size 设置要内联的简单方法的最大字节代码大小(以字节为单位)。
23. -XX:+ OptimizeStringConcat 实现String级联操作的优化。此选项默认启用。要禁用String级联操作的优化,请指定-XX:-OptimizeStringConcat
24. -XX:+ PrintAssembly 通过使用外部disassembler.so库来启用字节码和本地方法的汇编代码的打印。这使您可以看到生成的代码,这可能有助于您诊断性能问题。默认情况下,禁用此选项,并且未打印汇编代码。该-XX:+PrintAssembly选项必须与-XX:UnlockDiagnosticVMOptions解锁诊断JVM选项的选项一起使用。
25. -XX:+ PrintCompilation 每次编译方法时,通过将消息打印到控制台,启用来自JVM的详细诊断输出。这使您可以看到实际编译的方法。默认情况下,禁用此选项,并且不打印诊断输出。
26. -XX:+ PrintInlining 启用内联决定的打印。这使您可以看到哪些方法正在嵌入。默认情况下禁用此选项,并且不打印内联信息。该-XX:+PrintInlining选项必须与-XX:+UnlockDiagnosticVMOptions解锁诊断JVM选项的选项一起使用。
27. -XX:ReservedCodeCacheSize = size 设置JIT编译代码的最大代码高速缓存大小(以字节为单位)。
28. -XX:RTMAbortRatio = abort_ratio RTM中止比例指定为所有执行的RTM事务的百分比(%)。如果一些被中止的事务变得大于该比率,那么编译的代码将被去优化。-XX:+UseRTMDeopt启用该选项时使用此比率。此选项的默认值为50.这意味着如果所有事务的50%中止,编译后的代码将被优化。
29. -XX:RTMRetryCount = number_of_retries 当RTM锁定代码中止或繁忙时,将重试此选项指定的次数,然后再回到正常的锁定机制。该选项的默认值为5. -XX:UseRTMLocking必须启用该选项。
30. -XX:-TieredCompilation 禁用分层编译的使用。默认情况下,此选项被启用。
31. -XX:+ UseAES 支持针对Intel,AMD和SPARC硬件的基于硬件的AES内在函数。 您还可以使用该-XX:+LogCompilation选项将编译活动记录到文件。
32. -XX:+ UseAESIntrinsics UseAES和UseAESIntrinsics标志默认情况下启用,仅支持32位和64位Java HotSpot Server VM。要禁用基于硬件的AES内在函数,请指定-XX:-UseAES -XX:-UseAESIntrinsics。例如,要启用硬件AES,请使用以下标志:-XX:+ UseAES -XX:+ UseAESIntrinsics
33. -XX:+ UseCodeCacheFlushing 在关闭编译器之前启用刷新代码缓存。此选项默认启用。要在关闭编译器之前禁用代码缓存的刷新,请指定-XX:-UseCodeCacheFlushing。
34. -XX:+ UseCondCardMark 在更新卡片表之前,可以检查卡是否已被标记。默认情况下禁用此选项,并且只能在具有多个套接字的计算机上使用此选项,从而提高依赖并发操作的Java应用程序的性能。
35. -XX:+ UseRTMDeopt 根据中止比例自动调整RTM锁定。该比例由-XX:RTMAbortRatio选项指定。如果中止事务的数量超过中止比率,则包含该锁的方法将被去优化,并将所有锁重新编译为常规锁。默认情况下禁用此选项。-XX:+UseRTMLocking必须启用该选项。
36. -XX:+ UseRTMLocking 为所有RTM锁生成限制性事务内存(RTM)锁定代码,正常锁定机制作为后备处理程序。默认情况下禁用此选项。
37. -XX:+ UseSHA 支持用于SPARC硬件的SHA加密散列函数的基于硬件的内在函数。UseSHA与seSHA1Intrinsics,UseSHA256Intrinsics和UseSHA512Intrinsics选项结合使用。在UseSHA和UseSHA*Intrinsics标志默认情况下启用
38. -XX:+ UseSuperWord 使标量运算转换为超级字操作。此选项默认启用。要禁用将标量运算转换为超级字操作,请指定-XX:-UseSuperWord。

5>.高级可维护性选项  收集系统信息和进行调试
1. -XX:+ ExtendedDTraceProbes 启用dtrace影响性能的其他工具探针。默认情况下,此选项被禁用
2. -XX:+ HeapDumpOnOutOfMemory 启用java.lang.OutOfMemoryError异常时,通过使用堆分析器(HPROF),将Java堆转储到当前目录中的文件。您可以使用该-XX:HeapDumpPath选项显式设置堆转储文件路径和名称。默认情况下,禁用此选项
3. -XX:LogFile = path 设置写入日志数据的路径和文件名。
4. -XX:+ PrintClassHistogram 在Control+C事件(SIGTERM)之后启用类实例直方图的打印。默认情况下,此选项被禁用。设置此选项等效于运行jmap -histo命令或jcmd pid GC.class_histogram命令,其中pid是当前的Java进程标识符
5. -XX:+ PrintConcurrentLocks java.util.concurrent在Control+C事件(SIGTERM)之后启用锁定打印。默认情况下,此选项被禁用。设置此选项等效于运行jstack -l命令或jcmd pid Thread.print -l命令,其中pid是当前的Java进程标识符。
6. -XX:+ UnlockDiagnosticVMOptions 解锁用于诊断JVM的选项。默认情况下,此选项被禁用


6>.高级垃圾收集选项 项控制Java HotSpot VM执行垃圾收集(GC)的方式
1. -XX:+ AggressiveHeap 启用Java堆优化。这可以根据计算机(RAM和CPU)的配置,将各种参数设置为对于具有密集内存分配的长时间运行作业是最佳的。默认情况下,该选项被禁用并且堆未被优化
2. -XX:+ AlwaysPreTouch 在JVM初始化期间,可以触摸Java堆上的每个页面。在进入该main()方法之前,这将使所有页面都进入内存。该选项可用于测试以模拟长时间运行的系统,所有虚拟内存映射到物理内存。默认情况下,此选项被禁用,并且所有页面都被提交为JVM堆空间填充。
3. -XX:+ CMSClassUnloadingEnabled 在使用并发标记扫描(CMS)垃圾回收器时启用类卸载。此选项默认启用。要禁用CMS垃圾收集器的类卸载,请指定-XX:-CMSClassUnloadingEnabled。
4. -XX:CMSExpAvgFactor = percent 设置当计算并发收集统计数据的指数平均值时,用于对当前样本进行加权的时间百分比(0到100)。默认情况下,指数平均因子设置为25%。以下示例显示如何将因子设置为15%:-XX:CMSExpAvgFactor = 15
5. -XX:CMSInitiatingOccupancyFraction = percent 设置开始CMS收集周期的旧一代占有率(0到100)的百分比。默认值设置为-1。任何负值(包括默认值)意味着-XX:CMSTriggerRatio用于定义启动占用率的值。以下示例显示如何将占用率设置为20%:-XX:CMSInitiatingOccupancyFraction = 20
6. -XX:+ CMSScavengeBeforeRemark 在CMS注释步骤之前启用清除尝试。默认情况下,此选项被禁用。
7. -XX:CMSTriggerRatio = percent 设置在-XX:MinHeapFreeRatioCMS收集周期开始之前分配的值所指定值的百分比(0到100)。默认值设置为80%。 以下示例显示如何将占用率设置为75%:-XX:CMSTriggerRatio = 75
8. -XX:ConcGCThreads = 线程 设置用于并发GC的线程数。默认值取决于JVM可用的CPU数。例如,要将并发GC的线程数设置为2,请指定以下选项:-XX:ConcGCThreads = 2
9. -XX:+ DisableExplicitGC 启用禁用处理calls 选项System.gc()。默认情况下,此选项被禁用
10. -XX:+ ExplicitGCInvokesConcurrent启用使用System.gc()请求调用并发GC 。默认情况下禁用此选项
11. -XX:+ ExplicitGCInvokesConcurrentAndUnloadsClasses 通过System.gc()在并发GC循环中使用request 和unloading 来启用并发GC的调用。默认情况下禁用此选项,只能与-XX:+UseConcMarkSweepGC选项一起启用。
12. -XX:G1HeapRegionSize = size 设置使用垃圾回收(G1)收集器时Java堆细分的区域的大小。该值可以在1 MB到32 MB之间。
13. -XX:+ G1PrintHeapRegions 允许打印分配哪些区域的信息,以及由G1收集器回收的哪些区域。默认情况下,此选项被禁用。
14. -XX:G1ReservePercent = percent 设置保留堆(0到50)的百分比,以减少G1收集器的升级失败的可能性。默认情况下,此选项设置为10%。以下示例显示如何将保留堆设置为20%:-XX:G1ReservePercent = 20
15. -XX:InitialHeapSize = size 设置内存分配池的初始大小(以字节为单位)。该值必须为0,或1024或大于1 MB的倍数。
16. -XX:InitialSurvivorRatio = ratio 设置吞吐量垃圾回收器使用的初始surver空间比(由-XX:+UseParallelGC/或 - XX:+UseParallelOldGC选项启用)。默认情况下,通过使用-XX:+UseParallelGC和-XX:+UseParallelOldGCoptions可以使用吞吐量垃圾回收器来启用自适应大小,并且从初始值开始,根据应用程序行为调整survivor空间。如果禁用自适应大小(使用-XX:-UseAdaptiveSizePolicy选项),则-XX:SurvivorRatio应该使用该选项来设置整个应用程序执行的survivor空间的大小。
以下公式可用于根据年轻一代(Y)的大小和初始survivor空间比(R)计算survivor空间(S)的初始大小:S = Y /(R + 2)方程式中的2表示两个survivor空间。初始survivor空间比指定的值越大,初始survivor空间大小越小。默认情况下,初始survivor空间比设置为8.如果使用年轻一代空间大小的默认值(2 MB),幸存空间的初始大小将为0.2 MB。以下示例显示如何将初始survivor空间比设置为4:-XX:InitialSurvivorRatio = 4
17. -XX:InitiateHeapOccupancyPercent = percent 设置开始并发GC循环的堆占用百分比(0到100)。它被垃圾收集器使用,它基于整个堆的占用而不仅仅是一代(例如,G1垃圾收集器)触发并发GC循环。默认情况下,启动值设置为45%。值为0表示不间断GC循环。以下示例显示如何将启动堆占用率设置为75%:-XX:InitiatingHeapOccupancyPercent = 75
18. -XX:MaxGCPauseMillis = 时间 设置最大GC暂停时间的目标(以毫秒为单位)。这是一个软的目标,JVM将尽力实现。默认情况下,没有最大暂停时间值。
19. -XX:MaxHeapSize = size 设置内存分配池的最大大小(以Byes为单位)。此值必须是1024和大于2 MB的倍数。
20. -XX:MaxHeapFreeRatio = percent 设置GC事件后空闲堆空间的最大允许百分比(0到100)。如果空闲堆空间扩展到该值以上,那么堆将会收缩。默认情况下,此值设置为70%。
21. -XX:MaxMetaspaceSize = size 设置可以为类元数据分配的本机内存的最大数量。默认情况下,大小不受限制。应用程序的元数据量取决于应用程序本身,其他正在运行的应用程序以及系统上可用的内存量。
22. -XX:MaxNewSize = size 设置年轻一代堆的最大大小(以字节为单位)。
23. -XX:MaxTenuringThreshold = 阈值 设置用于自适应GC大小调整的最大固定阈值。最大值为15.对于并行(吞吐量)收集器,默认值为15,CMS收集器的默认值为6。
24. -XX:MetaspaceSize = size 设置分配的类元数据空间的大小,该空间将在第一次超出时触发垃圾回收。取决于所使用的元数据量,垃圾回收的这个阈值是增加或减少的。默认大小取决于平台。
25. -XX:MinHeapFreeRatio = percent 设置GC事件后空闲堆空间的最小允许百分比(0到100)。如果空闲堆空间低于此值,堆将被扩展。默认情况下,此值设置为40%。
26. -XX:NewRatio = ratio 设置年前代和老年代之间的比例。默认情况下,此选项设置为2
27. -XX:NewSize = size 设置年轻代堆的初始大小(以字节为单位) Oracle建议您将年轻一代的大小保持在整个堆大小的一半到四分之一之间
28. -XX:ParallelGCThreads = 线程 设置用于young和old代中并行垃圾收集的线程数。默认值取决于JVM可用的CPU数。
29. -XX:+ ParallelRefProcEnabled 启用并行参考处理。默认情况下,此选项被禁用。
30. -XX:+ PrintAdaptiveSizePolicy 启用自适应生成大小调整信息的打印。默认情况下,此选项被禁用。
31. -XX:+ PrintGC 启用在每个GC打印消息。默认情况下,此选项被禁用。
32. -XX:+ PrintGCApplicationConcurrentTime 启用自上次暂停以来经过的时间(例如,GC暂停)的打印。默认情况下,此选项被禁用。
33. -XX:+ PrintGCApplicationStoppedTime 启用暂停(例如,GC暂停)持续多少时间的打印。默认情况下,此选项被禁用。
34. -XX:+ PrintGCDateStamps 启用在每个GC打印日期戳。默认情况下,此选项被禁用。
35. -XX:+ PrintGCDetails 启用在每个GC打印详细信息。默认情况下,此选项被禁用。
36. -XX:+ PrintGCTaskTimeStamps 为每个GC工作线程任务打印时间戳。默认情况下,此选项被禁用。
37. -XX:+ PrintGCTimeStamps 可以在每个GC打印时间戳。默认情况下,此选项被禁用。
38. -XX:+ PrintStringDeduplicationStatistics 打印详细的重复数据删除统计信息。默认情况下,此选项被禁用。
39. -XX:+ PrintTenuringDistribution 启用永久代信息的打印。默认情况下,此选项被禁用。以下是输出的示例:
    Desired survivor size 48286924 bytes, new threshold 10 (max 10)
    - age 1: 28992024 bytes, 28992024 total
    - age 2: 1366864 bytes, 30358888 total
    - age 3: 1425912 bytes, 31784800 total
40. -XX:+ ScavengeBeforeFullGC 在每个完整GC之前启用年轻一代的GC。此选项默认启用。
41. -XX:SoftRefLRUPolicyMSPerMB = 时间 设置在上次引用之后,可轻松达到的对象在堆上保持活动的时间量(以毫秒为单位)。默认值是堆中每空闲兆字节的生命周期的1秒。
42. -XX:StringDeduplicationAgeThreshold = 阈值 String达到指定年龄的对象被认为是重复数据删除的候选者。默认3
43. -XX:SurvivorRatio = ratio 设置eden空间大小与surviver大小之间的比例。默认情况下,此选项设置为8.
44. -XX:TargetSurvivorRatio = percent 设置年轻垃圾收集后使用的survivor空间(0到100)所需的百分比。默认情况下,此选项设置为50%。
45. -XX:TLABSize = size 设置[thread-local]线程本地分配缓冲区(TLAB)的初始大小
46. -XX:+ UseAdaptiveSizePolicy 使用自适应生成大小调整。此选项默认启用。
47. -XX:+ UseCMSInitiatingOccupancyOnly 允许使用占用值作为启动CMS收集器的唯一标准。默认情况下,此选项被禁用
48. -XX:+ UseConcMarkSweepGC 启用CMS旧垃圾收集器的使用。 默认禁用
49. -XX:+ UseG1GC 启用垃圾回收(G1)垃圾回收器。它是一种服务器式垃圾回收器,面向具有大量RAM的多处理器机器。它可以高概率地满足GC暂停时间目标,同时保持良好的吞吐量。推荐使用G1收集器,用于需要大堆(大小约6 GB或更大)的应用,具有有限的GC等待时间要求(稳定且可预测的暂停时间低于0.5秒)。默认情况下,禁用此选项,并根据机器的配置和JVM的类型自动选择收集器。
50. -XX:+ UseGCOverheadLimit 启用在OutOfMemoryError引发异常之前限制JVM在GC上花费的时间比例的策略。默认情况下,此选项被启用,如果并行GC将占用总垃圾回收的时间的98%以上,并且回收的堆不到2%OutOfMemoryError
51. -XX:+ UseNUMA 通过增加应用程序对低延迟内存的使用,可以在具有不均匀内存架构(NUMA)的机器上对应用程序进行性能优化。默认情况下,禁用此选项
52 -XX:+ UseParallelGC 使用并行清除垃圾收集器(也称为吞吐量收集器)来利用多个处理器来提高应用程序的性能。默认情况下,禁用此选项
53. -XX:+ UseParallelOldGC 可以使用并行垃圾收集器来完成GC。默认情况下,此选项被禁用
54. -XX:+ UseParNewGC 允许在年轻一代中使用并行线程进行收集。默认情况下,此选项被禁用
55. -XX:+ UseSerialGC 启用串行垃圾收集器的使用。这通常是小而简单应用程序的最佳选择,不需要垃圾收集的任何特殊功能。默认情况下,禁用此选项
56. -XX:+ UseSHM 在Linux上,使JVM能够使用共享内存来设置大页面。
57. -XX:+ UseStringDeduplication 启用字符串重复数据删除。默认情况下,此选项被禁用
58. -XX:+ UseTLAB 允许在年轻一代的空间中使用线程本地分配块(TLAB)。此选项默认启用






 

8. javac 命令读取以Java编写的类和接口定义,并将其编译为字节码类文件。该命令还可以处理Java源文件和类中的注释。

源代码文件名称必须含有 .java 后缀,类文件名称必须含有 .class 后缀,源文件和类文件都必须有识别该类的根名。例如,名为 MyClass 的类将写在名为 MyClass.java的源文件中,并被编译为字节码类文件 MyClass.class。
内部类定义产生附加的类文件。这些类文件的名称将内部类和外部类的名称结合在一起,例如 MyClass$MyInnerClass.class。

标准选项
1.-classpath 类路径 设置用户类的路径,它会覆盖 CLASSPATH 环境变量中的用户类路径。若既未指定 CLASSPATH 又未指定 -classpath,则用户类路径由当前目录构成 若未指定 -sourcepath 选项(见下文),则将在用户类路径中查找类文件和源文件。
2.-d 目录 设置输出类文件的位置。如果某个类是一个包的组成部分,则 javac 将把该类文件放入反映包名的子目录中,必要时创建目录。例如,如果指定 -d c:\myclasses 并且该类名叫 com.mypackage.MyClass,那么类文件就叫作 c:\myclasses\com\mypackage\MyClass.class。
若未指定 -d 选项,则 javac 将把类文件放到与源文件相同的目录中。
注意: -d 选项指定的目录不会被自动添加到用户类路径中。
3. -deprecation 显示每种不鼓励使用的API(包含成员和类)的使用或覆盖情况说明。没有给出 -deprecation 选项的话, javac 将显示这类源文件的名称:这些源文件使用或覆盖了不鼓励使用的API。
4. -encoding 设置源文件编码名称,例如 EUCJIS/SJIS。若未指定 -encoding 选项,则使用平台缺省的转换器。
在windows dos环境下编译NetBeans建立的源文件需要加上参数 -encoding utf-8。
5. -g 生成所有的调试信息,包括局部变量。缺省情况下,只生成行号和源文件信息。
    -g:none 不生成任何调试信息。
    -g:{关键字列表} 只生成某些类型的调试信息,这些类型由逗号分隔的关键字列表所指定。有效的关键字有:
    source 源文件调试信息
    lines 行号调试信息
    vars 局部变量调试信息
    -nowarn 禁用警告信息。
    -O 优化代码,缩短执行时间。使用 -O 选项可能使编译速度下降,生成更大的类文件并使程序难以调试。
6. -sourcepath 源路径 指定用来查找类或接口定义的源代码路径。与用户类路径一样,多个源路径项用分号 “ ; ” 进行分隔,它们可以是目录、JAR 归档文件或 ZIP 归档文件。如果使用包,那么目录或归档文件中的本地路径名必须反映包名。(注意:通过类路径查找的类,如果找到了其源文件,则可能会自动被重新编译。)
7. -verbose 冗长输出。它包括了每个所加载的类和每个所编译的源文件的有关信息。联编选项缺省情况下,类是根据与 javac 一起发行的 JDK 自举类和扩展类来编译。但 javac 也支持联编,在联编中,类是根据其它 Java平台实现的自举类和扩展类来进行编译的。联编时, -bootclasspath 和 -extdirs 的使用很重要。
8. -target 版本 生成将在指定版本的虚拟机上运行的类文件。
9. -bootclasspath 自举类路径 根据指定的自举类集进行联编。和用户类路径一样,自举类路径项用分号 (;) 进行分隔,它们可以是目录、JAR 归档文件或 ZIP 归档文件。
10. -extdirs 目录 根据指定的扩展目录进行联编。目录是以分号分隔的目录列表。在指定目录的每个 JAR 归档文件中查找类文件。

非标准选项
1. -X 显示非标准选项的有关信息并退出。
2. -Xdepend 递归地搜索所有可获得的类,以寻找要重编译的最新源文件。该选项将更可靠地查找需要编译的类,但会使编译进程的速度大为减慢。
3. -Xstdout 将编译器信息送到System.out 中。缺省情况下,编译器信息送到 System.err 中。
4. -Xverbosepath 说明如何搜索路径和标准扩展以查找源文件和类文件。
5. -J选项 将选项传给 javac 调用的 java 启动器。例如, -J-Xms48m 将启动内存设为 48 兆字节。虽然它不以 -X 开头,但它并不是 javac 的‘标准选项’。用 -J 将选项传给执行用 Java 编写的应用程序的虚拟机是一种公共约定。

9. javadoc 程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。

常用标记

标签说明JDK 1.1 doclet标准doclet标签类型
@author 作者作者标识包、 类、接口
@version 版本号版本号包、 类、接口
@param 参数名 描述方法的入参名及描述信息,如入参有特别要求,可在此注释。构造函数、 方法
@return 描述对函数返回值的注释方法
@deprecated 过期文本标识随着程序版本的提升,当前API已经过期,仅为了保证兼容性依然存在,以此告之开发者不应再用这个API。包、类、接口、值域、构造函数、 方法
@throws异常类名构造函数或方法所会抛出的异常。 构造函数、 方法
@exception 异常类名同@throws。构造函数、 方法
@see 引用查看相关内容,如类、方法、变量等。包、类、接口、值域、构造函数、 方法
@since 描述文本API在什么程序的什么版本后开发支持。包、类、接口、值域、构造函数、 方法
{@link包.类#成员 标签}链接到某个特定的成员对应的文档中。 包、类、接口、值域、构造函数、 方法
{@value}当对常量进行注释时,如果想将其值包含在文档中,则通过该标签来引用常量的值。 √(JDK1.4)静态值域
javadoc命令格式如下:
javadoc [选项] [软件包名称] [源文件]
其中选项有:
-overview <文件> 读取 HTML 文件的概述文档
-public 仅显示公共类和成员
-protected 显示受保护/公共类和成员(默认)
-package 显示软件包/受保护/公共类和成员
-private 显示所有类和成员
-help 显示命令行选项并退出
-doclet <类> 通过替代 doclet 生成输出
-docletpath <路径> 指定查找 doclet 类文件的位置
-sourcepath <路径列表> 指定查找源文件的位置
-classpath <路径列表> 指定查找用户类文件的位置
-exclude <软件包列表> 指定要排除的软件包的列表
-subpackages <子软件包列表> 指定要递归装入的子软件包
-breakiterator 使用 BreakIterator 计算第 1 句
-bootclasspath <路径列表> 覆盖引导类加载器所装入的类文件的位置
-source <版本> 提供与指定版本的源兼容性
-extdirs <目录列表> 覆盖安装的扩展目录的位置
-verbose 输出有关 Javadoc 正在执行的操作的消息
-locale <名称> 要使用的语言环境,例如 en_US 或 en_US_WIN
-encoding <名称> 源文件编码名称
-quiet 不显示状态消息
-J<标志> 直接将 <标志> 传递给运行时系统

10. javafxpackager  此工具已重命名javapackager 用来打包java的Gui程序. javaFX或者swing等

javapackager 命令 [ options ]
-createbss 将CSS文件转换为二进制形式。
-createjar 根据其他参数生成JAR归档。
-makeall 执行编译
-signjar 用提供的证书签署JAR文件。

createbss命令的选项
-outdir 目录 将接收生成的输出文件的目录的名称。
-srcdir 目录 要封装的文件的基本目录。
-srcfiles 文件 该-srcdir选项指定的目录中的文件列表

createjar命令的选项
-appclass app-class 要执行的应用程序类的合格名称。
-argument arg 要作为<fx:argument>元素插入到JNLP文件中的未命名参数。
-classpath 文件 依赖JAR文件名列表。
-manifestAttrs 清单属性 其他清单属性的名称和值列表。句法: “NAME1 =值1,2 =值2,NAME3 =值3”
-nocss2bin 在复制到JAR之前,打包器不会将CSS文件转换为二进制形式。
-outdir 目录 将接收生成的输出文件的目录的名称。
-outfile 文件名 将生成的文件的名称(不带扩展名)。
-paramfile 文件 具有默认命名应用程序参数的属性文件。
-preloader preloader-class 要执行的JavaFX预加载器类的合格名称。仅对JavaFX应用程序使用此选项。不要用于Java应用程序,包括无头应用程序。
-srcdir 目录 要封装的文件的基本目录。
-srcfiles 文件 该-srcdir选项指定的目录中的文件列表。如果省略,将使用目录中的所有文件(在这种情况下是必需参数)。列表中的文件必须用空格分隔。

deploy命令的选项
-allpermissions 如果存在,应用程序将需要JNLP文件中的所有安全权限。
-appclass app-class 要执行的应用程序类的合格名称。
-argument arg 要插入到<fx:argument>JNLP文件中的元素的未命名参数。
-B bundler-argument = value 向捆绑包提供用于打包自包含应用程序的信息。有关每个捆绑器的参数的信息,请参阅自包含应用程序捆绑器的参数。
-callbacks 在生成的HTML中指定用户回调方法。格式如下:“名1:值1,名称2:值2,...”
-description 描述 应用说明
-embedCertificates 如果存在,证书将嵌入在JNLP文件中。
-embedjnlp 如果存在,JNLP文件将被嵌入到HTML文档中。
-height 高度 应用程序的高度
-htmlparamfile 文件 属性文件,当在浏览器中运行结果应用程序的参数。
-isExtension 如果存在,srcfiles则被视为扩展。
-name 名
-outdir 目录 将接收生成的输出文件的目录的名称。
-outfile 文件名 将生成的文件的名称(不带扩展名)。
-paramfile 文件 属性文件具有默认的应用程序参数。
-preloader preloader-class 要执行的JavaFX预加载器类的合格名称。仅对JavaFX应用程序使用此选项。不要用于Java应用程序,包括无头应用程序。
-srcdir 目录 要封装的文件的基本目录。
-srcfiles 文件 该-srcdir选项指定的目录中的文件列表。如果省略,将使用目录中的所有文件(在这种情况下是必需参数)。列表中的文件必须用空格分隔。
-templateId 应用程序的应用程序ID用于模板处理。
-templateInFilename HTML模板文件的名称。
-templateOutFilename 将从模板生成的HTML文件的名称。
-title 标题 应用程序的标题。
-vendor 供应商 供应商的应用程序。
-width 宽度 应用程序的宽度
-updatemode 更新模式 设置JNLP文件的更新模式。
-native type all|installer|image|dmg|pkg|mac.appStore|rpm|deb
生成自包含的应用程序包(如果可能的话)。使用该-B选项为所使用的捆绑包提供参数。如果指定了type,那么只会创建一个这种类型的bundle。如果未指定类型,all则使用。以下值对于类型有效:
    all:运行正在运行的平台的所有安装程序,并为应用程序创建一个磁盘映像。如果未指定类型,则使用此值。
    installer:运行所有正在运行的平台的安装程序。
    image:为应用程序创建磁盘映像。在OS X上,图像是.app文件。在Linux上,映像是安装的目录。
    dmg:为OS X生成DMG文件。
    pkg:.pkg为OS X 生成一个包。
    mac.appStore:为Mac App Store生成软件包。
    rpm:为Linux生成RPM软件包。
    deb:为Linux生成Debian软件包。

makeall命令的选项
-appclass app-class 要执行的应用程序类的合格名称。
-classpath 文件 依赖JAR文件名列表。
-height 高度 应用程序的高度
-name 名 申请名称
-preloader preloader-class 要执行的JavaFX预加载器类的合格名称。仅对JavaFX应用程序使用此选项。不要用于Java应用程序,包括无头应用程序。
-width 宽度 应用程序的宽度

signjar命令的选项
-alias 别名为关键。
-keypass 恢复密钥的密码。
-keyStore 文件 密钥库文件名。
-outdir 目录 将接收生成的输出文件的目录的名称。
-srcdir 目录 要签名的文件的基本目录。
-srcfiles 文件 该-srcdir选项指定的目录中的文件列表。如果省略,将使用目录中的所有文件(在这种情况下是必需参数)。列表中的文件必须用空格分隔。
-storepass 密码以检查密钥库的完整性或解锁密钥库
-storetype 密钥库类型。默认值为“jks”。 自包含应用程序绑定器的参数该命令的-B选项用于-deploy指定用于创建自包含应用程序的bundler的参数。每种类型的bundler都有自己的参数。

一般Bundler参数
1.appVersion = version 版本的应用程序包。一些绑定器限制版本字符串的格式。
2.classPath = path 相对于组装的应用程序目录的类路径。通常从JAR文件清单中提取路径,如果使用其他javapackager命令,则不需要设置路径。
3. icon = 路径 用于发射器和其他辅助的默认图标的位置。对于OS X,格式必须是.icns。对于Linux,格式必须是.png。标识符= 值用于其他平台特定值的默认值,例如mac.CFBundleIdentifier。例如,建议使用反向DNS顺序com.example.application.my-application。
4. jvmOptions = 选项 应用程序运行时传递给JVM的选项。java可以使用任何对命令有效的选项。要传递多个选项,请使用该-B选项的多个实例,如以下示例所示:-BjvmOptions = -Xmx128m -BjvmOptions = -Xms128m jvmProperties = property = value 运行应用程序时要传递给VM的Java系统属性。可以使用任何-D对java命令选项有效的属性。指定属性的属性名称和值。要传递多个属性,请使用该-B选项的多个实例,如以下示例所示:
5.-BjvmProperties = apiUserName = example -BjvmProperties = apiKey = abcdef1234567890 mainJar = filename 包含应用程序主类的JAR文件的名称。文件名通常从JAR文件清单中提取,如果使用其他javapackager命令,则不需要设置文件名。
6.preferencesID = 节点 首选项节点检查以检查用户可以覆盖的JVM选项。指定的节点作为选项在运行时传递给应用程序-Dapp.preferences.id。该参数与userJVMOptions参数一起使用。
7. Bruntime = userJvmOptions  JRE或JDK的位置要包含在包中。提供到JDK或JRE的根文件夹的文件路径。要使用系统默认JRE,请不要提供路径,如以下示例所示:-Bruntime =userJvmOptions = option = value
用户可以覆盖的JVM选项。java可以使用任何对命令有效的选项。同时指定选项名称和选项的值。要传递多个选项,请使用该-B选项的多个实例,如以下示例所示:-BuserJvmOptions = -Xmx = 128m -BuserJvmOptions = -Xms = 128m OS X应用程序Bundler参数
8. mac.category = category 应用类别。该类别必须在Apple Developer网站上找到的类别列表中。
9. mac.CFBundleIdentifier = value 存储在info plist中的值CFBundleIdentifier。该值必须是全局唯一的,并且只包含字母,数字,点和破折号。例如,建议使用反向DNS顺序com.example.application.my-application。
10.mac.CFBundleName = name OS X菜单栏上显示的应用程序名称。建议使用少于16个字符的名称。默认值为name属性。
11.mac.CFBundleVersion = value 应用程序的版本号,内部使用。该值必须至少为一个整数,并且不超过三个整数,它们由句点(。)分隔,例如1.3或2.0.1。该值可以与appVersion参数的值不同。如果appVersion使用有效值指定12.mac.CFBundleVersion参数,并且未指定参数,则使用该appVersion值。如果没有指定参数,100则作为版本号。mac.signing-key-developer-id-app = key 用于Devleloper ID或网守签名的签名密钥的名称。如果从Apple开发者网站导入了标准密钥,则默认使用该密钥。如果没有键可以识别,则应用程序未签名。
13.mac.bundle-id-signature-prefix = prefix 在二进制文件中,如果在bundle中找到缺少plists或现有签名的二进制文件,则应用于已签名二进制文件的前缀。OS X DMG(磁盘映像)Bundler参数 OS X DMG安装程序显示licenseFile在允许安装磁盘映像之前指定的许可证文件(如果提供)。
14. licenseFile = path 捆绑者提交或记录的最终用户许可协议(EULA)的位置。路径是相对于打包的应用程序资源,例如-BlicenseFile=COPYING。
15.systemWide = boolean 指示要使用哪个拖放到目标的标记。设置为true显示“应用程序”文件夹。设置为false显示Desktop文件夹。默认是true。
16.mac.CFBundleVersion = value 应用程序的版本号,内部使用。该值必须至少为一个整数,并且不超过三个整数,它们由句点(。)分隔,例如1.3或2.0.1。该值可以与appVersion参数的值不同。如果appVersion使用有效值指定 mac.CFBundleVersion参数,并且未指定参数,则使用该appVersion值。如果没有指定参数,100则作为版本号。
17.mac.dmg.simple = boolean 指示是否跳过取决于执行AppleScript代码的DMG自定义步骤的标志。设置为true跳过步骤。设置时true,磁盘窗口不具有背景图像,并且图标未移动到位。如果systemWide参数也设置为true,那么到根应用程序文件夹的符号链接将添加到DMG文件中。如果systemWide参数设置为false,则仅将应用程序添加到DMG文件中,不会添加到桌面的链接。

OS X PKG Bundler参数 OS X PKG安装程序将显示一个向导,并显示由向导中指定licenseFile的页面指定的许可证文件。在安装应用程序之前,用户必须接受条款。
1.licenseFile = path 捆绑者提交或记录的最终用户许可协议(EULA)的位置。路径是相对于打包的应用程序资源,例如-BlicenseFile=COPYING。
2.mac.signing-key-developer-id-installer = key 用于开发人员ID或网守签名的签名密钥的名称。如果从Apple开发者网站导入了标准密钥,则默认使用该密钥。如果没有键可以识别,则应用程序未签名。
3.mac.CFBundleVersion = value 应用程序的版本号,内部使用。该值必须至少为一个整数,并且不超过三个整数,它们由句点(。)分隔,例如1.3或2.0.1。该值可以与appVersion参数的值不同。如果appVersion使用有效值指定mac.CFBundleVersion参数,并且未指定参数,则使用该appVersion值。如果没有指定参数,100则作为版本号。


Mac App Store Bundler参数
1.mac.app-store-authorizationlements = path 包含应用程序运行的权利的文件的位置。该文件必须是Apple指定的格式。文件的路径可以绝对的方式来指定,也可以相对于调用的方式来指定javapackager。如果没有指定任何权利,则应用程序在比典型的小应用程序沙箱更严格的沙箱中运行,并且阻止访问网络套接字和所有文件。
2.mac.signing-key-app = key Mac App Store的应用程序签名密钥的名称。如果从Apple开发者网站导入了标准密钥,则默认使用该密钥。如果没有键可以识别,则应用程序未签名。
3.mac.signing-key-pkg = keyMac App Store的安装程序签名密钥的名称。如果从Apple开发者网站导入了标准密钥,则默认使用该密钥。如果没有键可以识别,则应用程序未签名。
4.mac.CFBundleVersion = value 应用程序的版本号,内部使用。该值必须至少为一个整数,并且不超过三个整数,它们由句点(。)分隔,例如1.3或2.0.1。该值可以与appVersion参数的值不同。如果appVersion使用有效值指定mac.CFBundleVersion参数,并且未指定参数,则使用该appVersion值。如果没有指定参数,100则作为版本号。


Linux Debian Bundler参数
1.licenseFile在所有情况下,指定的许可证文件不会呈现给用户,但该文件包含在应用程序元数据中。
2.category = category 应用类别。参见http://standards.freedesktop.org/menu-spec/latest/apa.html例子。
3. copyright = string 应用程序的版权字符串。这个参数用于Debian元数据。
4. email = 地址 在Debian维护者字段中使用的电子邮件地址。
5. licenseFile = path 捆绑者提交或记录的最终用户许可协议(EULA)的位置。路径是相对于打包的应用程序资源,例如-BlicenseFile=COPYING。
6. licenseType = type 许可证类型的简称,例如-BlicenseType=Proprietary或"-BlicenseType=GPL v2 + Classpath Exception"。
7. vendor = value 提供申请的公司,组织或个人。此参数用于Debian维护者字段。

Linux RPM Bundler参数
1. category = category 应用类别。参见http://standards.freedesktop.org/menu-spec/latest/apa.html例子。
2.licenseFile = path 捆绑者提交或记录的最终用户许可协议(EULA)的位置。路径是相对于打包的应用程序资源,例如-BlicenseFile=COPYING。
3. licenseType = type 许可证类型的简称,例如-BlicenseType=Proprietary或"-BlicenseType=GPL v2 + Classpath Exception"。
4. vendor = value 提供申请的公司,组织或个人。




一般用法: 
1.打包成可执行jar 
javafxpackager -createjar -appclass ClassName -srcdir classes -outdir archive -out file ClassName .jar
2.打包成本地exe可执行文件
javafxpackager -deploy -appclass ClassName -native image -srcdir archive -outdir deploy -outfile ClassName 

11. javah   Java头文件工具,用于根据Java类生成C/C++头文件和源文件

-o OUTPUTFILE 将命令行中列出的所有类的结果头文件或源文件连接到输出文件中。只有一个-o或-d可以使用。
-d 目录 设置javah命令保存头文件或存根文件的目录。只有一个-d或-o可以使用。
-stubs使javah命令从Java对象文件生成C声明。
-verbose 指示详细输出,并使javah命令打印stdout关于生成文件状态的消息。
-jni 导致javah命令创建一个包含JNI风格的本机方法函数原型的输出文件。这是默认输出; 使用-jni是可选的。
-bootclasspath path 指定加载引导类的路径。默认情况下,引导类是实现位于其中的核心Java平台jre\lib\rt.jar和其他几个JAR文件的类。
常规用法 javah package.ClassName

12. javap   Java class文件分解器,可以反编译,也可以查看java编译器生成的字节码。用于分解class文件

  -version                 版本信息
  -v  -verbose             输出附加信息
  -l                       输出行号和本地变量表
  -public                  仅显示公共类和成员
  -protected               显示受保护的/公共类和成员
  -package                 显示程序包/受保护的/公共类
                           和成员 (默认)
  -p  -private             显示所有类和成员
  -c                       对代码进行反汇编
  -s                       输出内部类型签名
  -sysinfo                 显示正在处理的类的
                           系统信息 (路径, 大小, 日期, MD5 散列)
  -constants               显示静态最终常量
  -classpath <path>        指定查找用户类文件的位置
  -bootclasspath <path>    覆盖引导类文件的位置

13. javapackager  见 javafxpackager  

14. java-rmi.cgi  远程方法调用时的提供客户端html接口

15. javaws  启动程序,这是JNLP的参考实现。Java Web Start启动托管在网络上的Java应用程序和小程序。

javaws [ run-options ] jnlp

run-options 运行选项

1. -offline 以脱机模式运行Java Web Start。
2. -Xnosplash 不显示初始闪屏。
3. -open arguments 指定时,此选项将替换JNLP文件中的参数-open arguments。
4. -print arguments 指定时,此选项将替换JNLP文件中的参数-print arguments。
5. -online 使用在线模式。这是默认行为。
6. -wait 该javaws过程不退出,直到应用程序退出。此选项不起作用
7. -verbose 显示额外的输出。
8. -Joption 将选项传递给Java虚拟机,其中option是Java应用程序启动器参考页面中描述的选项之一。例如,-J-Xms48m将启动内存设置为48 MB。
9. -system仅从系统缓存运行应用程序。 

Control-Options 控制选项
1. -viewer 在Java控制面板中显示缓存查看器。
2. -clearcache从缓存中删除所有未安装的应用程序。
3. -userConfig property-name清除指定的部署属性。
4. -userConfig property-name property-value 将指定的部署属性设置为指定的值。
5. -uninstall 从缓存中删除所有应用程序
6. -uninstall jnlp 从缓存中删除应用程序。
7. -print import-options jnlp将应用程序导入缓存。

Import-Options 导入选项
1. -silent静默导入(没有用户界面)。
2. -system将应用程序导入系统缓存
3. -codebase url从指定的代码库中检索资源。
4. -shortcut 如果用户允许提示,请安装快捷方式。此选项不起作用,除非该-silent选项也被使用。
5. -association 如果用户允许提示,则安装关联。此选项不起作用,除非该-silent选项也被使用。

JNLP(Java Network Launching Protocol )是java提供的一种可以通过浏览器直接执行java应用程序的途径,它使你可以直接通过一个网页上的url连接打开一个java应用程序。

16. jcmd  将诊断命令请求发送到正在运行的Java虚拟机(JVM) 需要1.7以上

jcmd pid | 主要类 PerfCounter.print
jcmd pid | main-class -f 文件名
jcmd pid | main-class 命令 [ arguments ]

1. jcmd -l 列出所有java虚拟机,
2. jcmd pid help 针对每一个虚拟机,可以使用help命令列出该虚拟机支持的所有命令
3. jcmd pid VM.uptime 查看虚拟机启动时间VM.uptime
4. jcmd pid Thread.print 打印线程栈信息Thread.print
5. jcmd pid GC.class_histogram 查看系统中类统计信息GC.class_histogram
6. jcmd pid GC.heap_dump 导出堆信息GC.heap_dump
7. jcmd pid VM.system_properties 获取系统Properties内容VM.system_properties
8. jcmd pid VM.flags 获取启动参数VM.flags
9. jcmd pid PerfCounter.print 获取所有性能相关数据PerfCounter.print
官方推荐使用jcmd替代jmap

17. jconsole 图形化用户界面的监测工具,主要用于监测并显示运行于Java平台上的应用程序的性能和资源占用等信息。

jconsole [ options ] [connection...]
connection = pid | 主机:端口 | jmxURL
Options 选项
1. -interval=n 将更新间隔设置为n秒(默认值为4秒)。
2. -notile 最初不进行窗口提示提示(用于两个或多个连接)。
3. -pluginpath plugins 指定要为JConsole插件搜索的目录或JAR文件的列表。该插件路径应包含一个名为供应商的配置文件META-INF/services/com.sun.tools.jconsole.JConsolePlugin包含每个插件一行。该行指定实现com.sun.tools.jconsole.JConsolePlugin该类的类的完全限定类名。
4. -version 显示发布信息并退出。
5. -help 不解释
6. -Jflag 传递flag到jconsole运行命令的JVM 。

18. jcontrol 查了半天没发现这脚本有什么用..  oracle只有一堆这个脚本引发的bug......

19. jdb  Java调试工具(Java Debugger),主要用于对Java应用进行断点调试。

jdb [ options ] [ classname ] [ arguments ]

java -agentlib:jdwp = transport = dt_socket,server = y,suspend = n MyClass 
jdb -attach 8000

1. run 启动JDB并设置断点后,可以使用该run命令执行调试的应用程序。该run命令仅在jdb命令启动调试的应用程序而不是附加到现有JVM 时可用。
2. cont在断点,异常或步骤之后继续执行调试的应用程序。
3. print 显示Java对象和原始值。
4. dump对于原始值,dump命令与print命令相同.对于对象,dump命令打印对象中定义的每个字段的当前值。包括静态和实例字段。
5. threads 列出当前正在运行的线程。对于每个线程,打印其名称和当前状态以及可用于其他命令的索引。
6. thread 选择一个线程作为当前线程。
7. wherewhere没有参数的命令会转储当前线程的堆栈。该where all命令将转储当前线程组中所有线程的堆栈。该where threadindex命令转储指定线程的堆栈。 如果当前线程通过诸如断点或suspend命令之类的事件挂起,则可以使用print和dump命令显示局部变量和字段。的up和down哪些堆栈帧的命令选择的是当前堆栈帧。
8. Breakpoints 断点可以在JDB中以行号或方法的第一条指令进行设置
9. Stepping step无论是当前堆栈帧还是被叫方法,该命令都将执行下一行。
10. Exceptions 当catch抛出线程的调用堆栈中的任何地方没有一个语句发生异常时,JVM通常会打印一个异常跟踪并退出。但是,在JDB下运行时,控制权将返回到JDB。然后可以使用该jdb命令来诊断异常的原因。
11. Options当您使用jdb命令代替的java命令行命令,该jdb命令接受许多相同的选项java命令,其中包括-D,-classpath,和-X选项。
12. -help
13. -sourcepath dir1:dir2: . . .使用指定的路径搜索指定路径中的源文件。如果未指定此选项,则使用点(.)的默认路径。
14. -attach address 使用默认连接机制将调试器附加到正在运行的JVM。
15. -listen address 等待正在运行的JVM使用标准连接器连接到指定的地址。
16. -launch 启动JDB后立即启动调试的应用程序。该-launch选项不需要该run命令。
17. -listconnectors列出此JVM中可用的连接器。
18. -connect connector-name:name1=value1使用命名的连接器和列出的参数值连接到目标JVM。
19. -dbgtrace [flags]打印调试jdb命令的信息。
20. -tclient在Java HotSpot VM客户机中运行应用程序。
21. -tserver在Java HotSpot VM服务器中运行应用程序。
22. -Joption传递option到JVM,其中的选项是Java应用程序启动器的参考页面中描述的选项之一。例如,-J-Xms48m将启动内存设置为48 MB。
23. -v -verbose [:class | gc | jni]打开详细模式。
24. -D name = value 设置系统属性。
25. -classpath 目录 列出在其中查找类别的冒号分隔的目录。
26. -X 选项 非标准目标JVM选项。

20. jdeps  Java8中带了一个新的类依赖分析器

jdeps [ options ] 类 ...

Options
1. -dotoutput <dir> DOT文件输出的目标目录。如果指定,jdeps将为每个分析的jar文件生成一个.dot文件
2. -s 
   -summary 仅打印依赖关系摘要。
3. -v
   -verbose 打印所有类级别的依赖关系。
   -verbose:package打印包级依赖关系,不包括相同jar中的依赖关系。
   -verbose:class打印类级别依赖关系,不包括相同jar中的依赖关系。
4. -cp <path>
   -classpath <path> 指定查找类文件的位置。
5. -p <pkg name>
   -package <pkg name> 查找指定包中的依赖关系。您可以为不同的包多次指定此选项。在-p和-e选项是互斥的。
6. -e <regex>
   -regex <regex>查找与指定的正则表达式模式匹配的包中的依赖关系。在-p和-e选项是互斥的。
7. -include <regex>限制类匹配模式的分析。此选项过滤要分析的类的列表。它可以与依赖关系一起使用,-p并将-e其应用于依赖关系。
8. -jdkinternals 查找JDK内部API中的类级依赖关系。默认情况下,它分析-classpath选项和输入文件中指定的所有类,除非您指定了该-include选项。您不能使用与该选项-p,-e和-s选项。
9. -P
   -profile 显示配置文件或包含包的文件。
10.-apionly限制对API的分析
11.-R
   -recursive 递归地遍历所有依赖关系。
12.-version 打印版本信息。

21. jhat  用于分析java堆 解析Java堆转储文件并启动Web服务器。该命令允许您使用自己喜欢的Web浏览器浏览堆转储

jhat [ options ] heap-dump-file
选项
1. -stack false | true 关闭跟踪对象分配调用堆栈。如果堆转储中的分配站点信息不可用,则必须将此标志设置为false。默认是true。
2. -refs false | true 关闭对对象引用的跟踪。默认是true。
3. -port port-number 设置jhatHTTP服务器的端口。默认值为7000。
4. -exclude exclude-file指定一个文件,列出应从可达对象查询中排除的数据成员。
5. -baseline 排除文件 指定基线堆转储。具有相同对象ID的堆转储中的对象将被标记为不是新的。其他对象被标记为新的。这对于比较两个不同的堆转储很有用。
6. -debug int 设置此工具的调试级别。0级表示没有调试输出。为更详细的模式设置较高的值。
7. -version 报告发布号码并退出
8. -h 显示帮助信息并退出。
9. -help 显示帮助信息并退出。
10.-J flag 传递flag到jhat运行命令的Java虚拟机。例如,-J-Xmx512m要使用512 MB的最大堆大小。

22. jinfo Java配置信息工具(Java Configuration Information),用于打印指定Java进程、核心文件或远程调试服务器的配置信息。

jinfo [ 选项 ] pid
jinfo [ option ] 可执行文件
jinfo [ option ] [servier-id] remote-hostname-or-IP
打印指定Java进程或核心文件或远程调试服务器的Java配置信息。配置信息包括Java系统属性和Java虚拟机(JVM)命令行标志。如果指定的进程在64位JVM上运行,则可能需要指定该-J-d64选项
Options 
1. no-option打印命令行标志和系统属性名称 - 值对。
2. -flag name 打印指定的命令行标志的名称和值。
3. -flag [+|-]name 启用或禁用指定的布尔命令行标志。
4. -flag name=value 将指定的命令行标志设置为指定的值。
5. -flags 打印传递给JVM的命令行标志。
6. -sysprops将Java系统属性打印为名称/值对。
7. -h
   -help 

23. jjs  命令行工具来调用 Nashorn引擎。可以使用它来解释一个或多个脚本文件,或运行交互式shell。

Options
1. -cp path
   -classpath path 指定支持类文件的路径要设置多个路径,可以重复该选项,也可以使用冒号(:)分隔每个路径。
2. -Dname=value通过为属性名称分配值来设置要传递给脚本的系统属性。
3. -doe
   --dump-on-error发生错误时提供完整的堆栈跟踪。默认情况下,只打印一个简短的错误信息。
4. -fv
   --fullversion 打印完整的Nashorn版本字符串。
5. -fx将脚本作为JavaFX应用程序启动。
6. -h
   -help
7. --language=[es5] 指定ECMAScript语言版本。默认版本为ES5。
8. -ot
   --optimistic-types=[true|false]启用或禁用乐观类型假设,并优化重新编译。以乐观类型运行将产生更高的最终速度,但可能会增加预热时间。
9. -scripting启用shell脚本功能。
10.-strict启用严格模式,强化对标准的强化(ECMAScript版本5.1),从而更容易检测常见的编码错误。
11.-t=zone
   -timezone=zone设置脚本执行的指定时区。它覆盖OS中设置的时区并由Date对象使用。
12.-v
   -version 打印Nashorn版本字符串。

24. jmap Java内存映射工具(Java Memory Map),主要用于打印指定Java进程、核心文件或远程调试服务器的共享对象内存映射或堆内存细节。

jmap [ options ] pid
jmap [ options ] executable core
jmap [ options ] [ pid ] server-id@ ] remote-hostname-or-IP

Options 
1. <no option>当不使用选项时,该jmap命令将打印共享对象映射。对于加载在目标JVM中的每个共享对象,将打印起始地址,映射大小以及共享对象文件的完整路径。
2. -dump:[live,] format=b, file=filename 以hprof二进制格式转储Java堆filename。的live子选项是可选的,但是当指定时,仅在堆活动对象被dump。
3. -finalizerinfo 打印有关正在等待最终确定的对象的信息。
4. -heap 打印使用的垃圾回收的堆概要,头配置和生成代码堆的使用。此外,打印了内部字符串的数量和大小。
5. -histo[:live] 打印堆的直方图。对于每个Java类,打印对象数,内存大小(以字节为单位)和全限定类名。JVM内部类名称带有星号(*)前缀。如果live指定子选项,则只计数活动对象。
6. -clstats 打印Java堆的类加载器智能统计信息。对于每个类加载器,它的名称,它的活动状态,地址,父类加载器以及它加载的类的数量和大小。
7. -F 强制使用. 当pid不响应时,使用jmap -dump或jmap -histo选项使用此选项。live子选项并不在此模式下支持。
8. -h
   -help 打印帮助信息。
9. -Jflag 传递flag到jmap运行命令的Java虚拟机。

25. jmc Java任务控制工具(Java Mission Control),主要用于HotSpot JVM的生产时间监测、分析、诊断。

jmc [ options ]

1. -help 打印jmc命令帮助。
2. -version 打印Java Mission Control的版本并退出。
3. -showversion 打印Java Mission Control的版本并继续。
4. -debug 启用调试输出。
5. -consoleLog 在控制台上打印Eclipse日志。(来自Eclipse的标记)。
6. -data workspace 设置运行Java Mission Control时使用的工作空间。默认工作区是$HOME/.jmc。(来自Eclipse的标记)。
7. -open file 在Java Mission Control中打开文件。例如,打开一个飞行记录文件(.jfr文件)。
8. eclipse-option 将这个eclipse选项传递给底层的Eclipse平台。例如。-nosplash
9. -vmargs jvm-arguments 覆盖jmc.ini位于文件中的文件中指定的JVM参数JAVA_HOME/bin。
10.--launcher.appendVmargs 将-vmargs标记中的JVM参数附加到jmc.ini文件中的参数。

26. jps JVM进程状态工具(JVM Process Status Tool),用于显示目标系统上的HotSpot JVM的Java进程信息。

jps [ options ] [ hostid ]
1. -q 抑制类名的输出,JAR文件名和传递给该main方法的参数,仅生成本地JVM标识符列表。
2. -m 显示传递给该main方法的参数。输出可能是null嵌入式JVM。
3. -l 显示应用程序main类的完整包名或应用程序的JAR文件的完整路径名。
4. -v 显示传递给JVM的参数。
5. -V 抑制类名的输出,JAR文件名和传递给main方法的参数,仅生成本地JVM标识符的列表。
6. -Joption 传递option给JVM,其中的选项是optionsJava应用程序启动器的参考页面中描述的选项之一。例如,-J-Xms48m将启动内存设置为48 MB。

27. jrunscript Java命令行脚本外壳工具(command line script shell),主要用于解释执行javascript、groovy、ruby等脚本语言。

jrunscript [options] [arguments]
1. -classpath path 
   -cp path 指示脚本需要访问的任何类文件。
2. -Dname=value 设置Java系统属性。
3. -Jflag flag直接传递到jrunscript运行命令的Java虚拟机。
4. -I language 使用指定的脚本语言。默认情况下,使用JavaScript。要使用其他脚本语言,您必须使用-cp或-classpath选项指定相应的脚本引擎的JAR文件。
5. -e script 评估指定的脚本。此选项可用于运行在命令行上完全指定的单行脚本。
6. -encoding encoding 指定用于读取脚本文件的字符编码。
7. -f script-file 评估指定的脚本文件(批处理模式)。
8. -f - 从标准输入(交互模式)读取和评估脚本。
9. -help
   -? 显示帮助信息并退出。
10.-q 列出可用和可退出的所有脚本引擎。

28. jsadebugd  Java可用性代理调试守护进程(Java Serviceability Agent Debug Daemon),主要用于附加到指定的Java进程、核心文件,或充当一个调试服务器。

jsadebugd pid [ server-id ]
jsadebugd executable core [ server-id ]

29. jstack  Java堆栈跟踪工具,主要用于打印指定Java进程、核心文件或远程调试服务器的Java线程的堆栈跟踪信息。

jstack [ options ] pid
jstack [ options ] executable core
jstack [ options ] [ server-id@ ] remote-hostname-or-IP
-F 当jstack[ -l] pid不响应时强制堆栈转储。
-l 长列表。打印有关锁的其他信息
-m 打印一个混合模式堆栈跟踪,其中包含Java和本机C / C ++框架。 (不适用于远程调试)

30. jstat  JVM统计监测工具(JVM Statistics Monitoring Tool),主要用于监测并显示JVM的性能统计信息。

http://blog.csdn.net/zhaozheng7758/article/details/8623549  写的很好

jstat [ generalOption | outputOptions vmid [ interval[s|ms] [ count ] ]

1.generalOption 单一通用命令行选项-help或-options。请参阅常规选项。
2.outputOptions 一个或由单个的多输出选项statOption,加上任何的-t,-h和-J选项。请参见输出选项。
3.VMID 虚拟机标识符,它是一个指示目标JVM的字符串。一般语法如下:
    [协议:] [//] lvmid [@hostname [:端口] /服务器名]
所述的语法vmid串对应于URI的语法。该vmid字符串可以从表示本地JVM的简单整数变更为指定通信协议,端口号和其他实现特定值的更复杂的结构。请参阅虚拟机标识符。
4.interval [s | ms]
采样间隔以指定单位,秒(秒)或毫秒(ms)。默认单位是毫秒。必须是正整数。指定时,该jstat命令在每个间隔产生其输出。
5.count 
要显示的样品数量 默认值为infinity,这将导致jstat命令显示统计信息,直到目标JVM终止或jstat命令终止。该值必须是正整数。

选项 jstat命令支持两种选项,一般选项和输出选项 一般选项使jstat命令显示简单的使用和版本信息。输出选项确定统计输出的内容和格式

一. 一般选项 如果指定一个常规选项,则不能指定任何其他选项或参数。
1. -help 显示帮助信息。
2. -options 显示静态选项列表

二. 输出选项
如果不指定常规选项,则可以指定输出选项。输出选项确定内容和格式输出,并且由单个statOption,加上任意一个输出选项(-h,-t,和-J)

-statOption  确定jstat命令显示的统计信息
    class: 显示类加载器行为的统计信息。
    compiler: :显示有关Java HotSpot VM即时编译器行为的统计信息。
    gc: 显示垃圾收集堆行为的统计信息。
    gccapacity: 显示有关世代及其对应空间容量的统计数据。
    gccause: 显示有关垃圾回收统计信息(相同-gcutil)的摘要,其中包含最后和当前(适用时)垃圾收集事件的原因。
    gcnew: 显示新生代行为的统计信息。
    gcnewcapacity: 显示有关新生代及其对应空间大小的统计信息。
    gcold: 显示年老带和元空间统计信息的统计信息。
    gcoldcapacity: 显示有关年老代大小的统计信息。
    gcmetacapacity: 显示有关元空间大小的统计信息。
    gcutil: 显示有关垃圾收集统计信息的摘要。
    printcompilation: 显示Java HotSpot VM编译方法统计信息。

-h n 每n个样本(输出行)显示列标题,其中n为正整数。默认值为0,显示第一行数据的列标题。
-t 显示时间戳列作为输出的第一列。时间戳是从目标JVM的开始时间起的时间戳。
-JjavaOption 传递javaOption到Java应用程序启动器。例如,-J-Xms48m将启动内存设置为48 MB。


统计选项

1. -class 类加载器统计。
        Loaded: 加载的类数。
        Bytes: 加载的多少kb。
        Unloaded: 卸载的类数
        Bytes: 已卸载的KB数。
        Time: 执行类加载和卸载操作所花费的时间。

2. -compiler Java HotSpot VM即时编译器统计信息。
        Compiled: 执行的编译任务数。
        Failed: 编译失败任务数。
        Invalid: 编译无效的任务数
        Time: 执行编译任务所花费的时间。
        FailedType: 编译最后一次失败的编译类型。
        FailedMethod: 最后一次编译失败的类名和方法。

3. -gc 垃圾收集堆统计。
        S0C: 当前survivor0容量(kB)。
        S1C: 当前survivor1容量(kB)。
        S0U: survivor0 利用率。
        S1U: Survivor1 利用率。
        EC: 当前eden空间容量(kB)。
        EU: 当前eden空间利用率。
        OC: 当前年老带空间容量(kB).
        OU: 当前年老带空间利用率.
        MC: 元空间容量 (kB).
        MU: 元空间利用率
        CCSC: 压缩类空间容量(kB).
        CCSU: 压缩类空间利用率
        YGC: 年轻代垃圾收集事件的数量。
        YGCT: 从应用程序启动到采样时年轻代中gc所用时间(s)。
        FGC:  full GC事件数量.
        FGCT: 从应用程序启动到采样时old代(全gc)gc所用时间(s)
        GCT: 从应用程序启动到采样时gc用的总时间(s)

4. -gccapacity 内存池生成和空间容量。
        NGCMN: 年轻代(young)中初始化(最小)的大小(字节)
        NGCMX: 年轻代(young)的最大容量 (字节).
        NGC: 年轻代(young)中当前的容量 (字节)
        S0C: survivor0容量.
        S1C: survivor1容量.
        EC: eden区容量.
        OGCMN: old代中初始化(最小)的大小 (字节)
        OGCMX: old代中最大的大小 (字节)
        OGC:  old代当前新生成的容量 (字节
        OC: Old代的容量 (字节)
        MCMN:最小元空间容量.
        MCMX: 最大元空间容量
        MC: 当前元空间容量.
        CCSMN: 压缩类空间最小容量.
        CCSMX: 压缩类空间最大容量
        CCSC: 当前压缩类空间容量
        YGC: 从应用程序启动到采样时年轻代中gc次数
        FGC: 从应用程序启动到采样时old代(全gc)gc次数

5. -gccause 此选项将显示与该选项相同的垃圾回收统计信息摘要-gcutil,但包括最后一个垃圾回收事件的原因和(当适用时)当前垃圾收集事件。除了列出的列之外-gcutil,此选项将添加以下列。
        LGCC:最后垃圾收集的原因
        GCC:当前垃圾收集的原因

6. -gcnew 新生代统计。
        S0C: 当前survivor0容量
        S1C: 当前survivor1容量
        S0U: survivor0利用率(kB)。
        S1U: survivor1利用率(kB)。
        TT:  持有次数限制
        MTT: 最大持有次数限制
        DSS: 目标survivor大小.
        EC: 当前eden区容量(kB).
        EU: Eden区利用率(kB).
        YGC: 从应用程序启动到采样时年轻代中gc次数
        YGCT: 从应用程序启动到采样时年轻代中gc所用时间(s)。

7. -gcnewcapacity 新生代空间大小统计。
        NGCMN: 最小新生代容量(kB)。
        NGCMX: 最大新生代容量
        NGC: 当前新生代容量
        S0CMX: 最大survivor0容量(kB).
        S0C: 当前survivor0 容量(kB).
        S1CMX: 最大survivor1 容量(kB).
        S1C: 当前survivor1容量(kB).
        ECMX: 最大eden区容量(kB).
        EC:  当前eden区容量(kB).
        YGC: 从应用程序启动到采样时年轻代中gc次数
        FGC: 从应用程序启动到采样时full gc次数
8. -gcold 年老带和元空间行为统计。
        MC: 元空间容量(kB).
        MU: 元空间利用率(kB).
        CCSC: 压缩类空间容量(kB).
        CCSU: 压缩类空间利用率 (kB).
        OC: 当前年老带容量(kB).
        OU: 当前年老带利用率(kB).
        YGC: 从应用程序启动到采样时年轻代中gc次数
        FGC: 从应用程序启动到采样时full gc次数
        FGCT: 从应用程序启动到采样时full gc时间
        GCT: 从应用程序启动到采样时gc用的总时间(s)
9. -gcoldcapacity 年老带空间统计
        OGCMN: 最小老年代容量(kB).
        OGCMX: 最大老年代容量 (kB).
        OGC: 当前老年代容量(kB).
        OC: old代当前新生成的容量 (字节).
        YGC: 从应用程序启动到采样时年轻带中gc次数.
        FGC: 从应用程序启动到采样时full gc次数.
        FGCT: 从应用程序启动到采样时,full gc时间
        GCT: 从应用程序启动到采样时应用总的gc时间
10.-gcmetacapacity 元空间大小统计
        MCMN: 最小元空间容量(kB).
        MCMX: 最大元空间容量(kB).
        MC: 当前元空间容量(kB).
        CCSMN: 压缩类空间最小容量(kB).
        CCSMX: 压缩类空间最大容量(kB).
        YGC: 从应用程序启动到采样时年轻带中gc次数.
        FGC: 从应用程序启动到采样时full gc次数.
        FGCT:从应用程序启动到采样时,full gc时间
        GCT: 从应用程序启动到采样时应用总的gc时间
11.-gcutil 垃圾收集统计摘要。
        S0: survivor0利用率占空间当前容量的百分比。
        S1: Survivor1利用率占空间当前容量的百分比。
        E: Eden利用率占空间当前容量的百分比。
        O: Old利用率占空间当前容量的百分比。
        M: Metaspace利用率占空间当前容量的百分比。
        CCS: 压缩类空间利用率占空间当前容量的百分比。
        YGC: 从应用程序启动到采样时年轻带中gc次数.
        YGCT: 从应用程序启动到采样时年轻带中gc时间.
        FGC: 从应用程序启动到采样时,full gc次数
        FGCT: 从应用程序启动到采样时,full gc时间
        GCT: 从应用程序启动到采样时,应用总的gc时间

12.-printcompilation Java HotSpot VM编译方法统计。
        Compiled: 最近编译的方法执行的编译任务数。
        Size: 最近编译的方法的字节码的字节数。
        Type: 最近编译的方法的编译类型。
        Method: 标识最近编译的方法的类名和方法名。类名称使用斜杠(/)而不是点(。)作为名称空间分隔符。方法名称是指定类中的方法。

31. jstatd  jstatd(VM jstatd Daemon)工具是一个RMI服务器应用,用于监测HotSpot JVM的创建和终止,并提供一个接口,允许远程监测工具附加到运行于本地主机的JVM上。

jstatd [ options ]
-nr 当没有找到现有的RMI注册表时,不会尝试在进程内创建一个内部RMI注册表。
-p port 如果-nr未指定该选项,则会创建RMI注册表找到或未找到的端口号。
-n rminame RMI注册表中绑定远程RMI对象的名称。默认名称为JStatRemoteHost。如果jstatd在同一主机上启动多个服务器,则可以通过指定此选项将每个服务器的导出的RMI对象的名称设置为唯一的。但是,这样做需要在监视客户端hostid和vmid字符串中包含唯一的服务器名称。
-Joption 传递option给JVM,其中的选项是optionsJava应用程序启动器的参考页面中描述的选项之一。例如,-J-Xms48m将启动内存设置为48 MB。

32. jvisualvm  JVM监测、故障排除、分析工具,主要以图形化界面的方式提供运行于指定虚拟机的Java应用程序的详细信息

33. keytool  密钥和证书管理工具,主要用于密钥和证书的创建、修改、删除等。

keytool [commands]

创建或添加数据到密钥库

-gencert

-genkeypair

-genseckey

-importcert

-importpassword

从另一个密码库导入内容

-importkeystore

生成证书请求

-certreq

导出数据

-exportcert

显示数据

-list

-printcert

-printcertreq

-printcrl

管理密钥库

-storepasswd

-keypasswd

-delete

-changealias


常用选项
-storetype storetype
此限定符指定要实例化的密钥库的类型。

-keystore 密钥库
密钥库位置。
-storepass [:env | :file ]参数
用于保护密钥库完整性的密码。

如果修饰符env或未file指定,则该密码具有value必须至少为6个字符的参数。否则,将按如下方式检索密码:
env:从名为的环境变量中检索密码argument。
file:从名为参数的文件中检索密码。

-providerName provider_name
用于在安全属性文件中列出密码服务提供商的名称。

-providerClass provider_class_name
用于在服务提供程序未列在安全属性文件中时指定加密服务提供商的主类文件的名称。

-providerArg provider_arg
与该-providerClass选项一起使用来表示构造函数的可选字符串输入参数provider_class_name。

-protected
无论是true或false。此值应指定true时,必须由一个受保护的认证路径的方式指定一个密码,如专用引脚reader.Because有两个密钥库涉及的-importkeystore命令,下面的两个选项-srcprotected和- destprotected提供了源密钥库和目标密钥库。

-ext {name {:critical} {= value}}
表示X.509证书扩展名。该选项可以用在-genkeypair和-gencert成生成证书嵌入扩展,或在-certreq显示什么请求证书请求扩展。

命名扩展

-gencert
{-rfc} {-infile infile } {-outfile outfile } {-alias alias } {-sigalg sigalg }
{-dname dname } {-startdate startdate {-ext ext } * {-validity valDays }
[-keypass keypass ] {-keystore keystore } [-storepass storepass ]
{-storetype storetype } {-providername provider_name }
{-providerClass provider_class_name {-providerArg provider_arg }}
{-v} {-protected} {-Jjavaoption}
生成证书作为对证书请求文件的响应(可以由keytool -certreq命令创建)。该命令从infile读取请求(如果省略,从标准输入),使用别名的私钥对其进行签名,并将X.509证书输出到outfile(如果省略,则输出到标准输出)。当-rfc指定时,输出格式为Base64编码PEM; 否则,创建二进制DER


-genkeypair
{-alias 别名 } {-keyalg keyalg } {-keysize 密钥大小 } {-sigalg sigalg }
[-dname dname ] [ -keypass keypass ] {-startdate value } {-ext ext } *
{-validity valDays } {-storetype storetype } {-keystore keystore }
[-storepass storepass ]
{-providerClass provider_class_name {-providerArg provider_arg }}
{-v} {-protected} {-Jjavaoption}
生成一个密钥对(一个公钥和相关的私钥)。将公钥包装到X.509 v3自签名证书中,该证书存储为单元素证书链。此证书链和私钥存储在由别名标识的新密钥库条目中。

-genseckey
{-alias 别名 } {-keyalg keyalg } {-keysize 密钥大小 } [-keypass 的keypass ]
{-storetype storetype } {-keystore keystore } [-storepass storepass ]
{-providerClass provider_class_name {-providerArg provider_arg }} {-v}
{-protected} {-Jjavaoption}
生成一个秘密密钥,并将其存储在一个新的KeyStore.SecretKeyEntry识别符中alias。

的值keyalg被使用的指定算法生成密钥,和的值keysize要生成的密钥的大小指定。该keypass值是保护密钥的密码。如果没有提供密码,则会提示用户。如果在提示符下按Return键,则密码密码设置为与该密码相同的密码keystore。该keypass值必须至少为6个字符。

-importcert
 {-alias alias } {-file cert_file } [ -keypass keypass ] {-noprompt} {-trustcacerts}
{-storetype storetype } {-keystore keystore } [-storepass storepass ]
{-providerName provider_name }
{-providerClass provider_class_name {-providerArg provider_arg }}
{-v} {-protected} {-Jjavaoption}
从文件读取证书或证书链(其中后者由PKCS#7格式的答复或X.509证书序列提供)cert_file,并将其存储在keystore标识的条目中alias。如果没有指定文件,则从中读取证书或证书链stdin。

该keytool命令可以导入X.509 v1,v2和v3证书以及由该类型的证书组成的PKCS#7格式的证书链。要导入的数据必须以二进制编码格式或由Internet RFC 1421标准定义的可打印编码格式(也称为Base64编码)提供


-importpassword
{-alias alias } [-keypass keypass ] {-storetype storetype } {-keystore keystore }
[-storepass storepass ]
{-providerClass provider_class_name {-providerArg provider_arg }}
{-v} {-protected} {-Jjavaoption}
导入密码并将其存储在新的KeyStore.SecretKeyEntry识别符中alias。密码可以通过标准输入流提供; 否则会提示用户。是用于保护输入密码的密码。如果没有提供密码,则会提示用户。keypass如果在提示符下按Return键,密码密码设置为与用于密码密码相同的密码keystore。长度必须至少为6个字符。keypass

-importkeystore
{-srcstoretype srcstoretype } {-deststoretype deststoretype }
[-srcstorepass srcstorepass ] [-deststorepass deststorepass ] {-srcprotected}
{} -destprotected 
{-srcalias srcalias {-destalias destalias } [-srckeypass srckeypass ]} 
[-destkeypass destkeypass ] {-noprompt}
{-srcProviderName src_provider_name } {-destProviderName dest_provider_name }
{-providerClass provider_class_name {-providerArg provider_arg }} {-v}
{-protected} {-Jjavaoption}
将单个条目或源密钥库中的所有条目导入到目标密钥库。

当-srcalias提供该选项时,该命令将通过别名标识的单个条目导入到目标密钥库。如果未提供目的地别名destalias,则srcalias用作目标别名。如果源条目受密码保护,则srckeypass用于恢复条目。如果没有提供srckeypass,则该keytool命令尝试使用srcstorepass来恢复该条目。如果srcstorepass没有提供或不正确,则会提示用户输入密码。目的地条目受保护destkeypass。如果destkeypass没有提供,则使用源条目密码保护目的地条目。例如,大多数第三方工具都需要storepass和keypass在PKCS#12密钥库中是一样的。为了为这些工具创建PKCS#12密钥库,请始终指定一个-destkeypass与之相同的密钥库-deststorepass。

-printcertreq
{-file 文件 }
打印可以由keytool -certreq命令生成的PKCS#10格式证书请求的内容。该命令从文件读取请求。如果没有文件,则从标准输入读取请求。

-certreq
{-alias alias } {-dname dname } {-sigalg sigalg } {-file certreq_file }
[-keypass keypass ] {-storetype storetype } {-keystore keystore }
[-storepass storepass ] {-providerName provider_name }
{-providerClass provider_class_name {-providerArg provider_arg }}
{-v} {-protected} {-Jjavaoption}
使用PKCS#10格式生成证书签名请求(CSR)。

CSR旨在发送给证书颁发机构(CA)。CA验证证书请求者(通常离线),并返回证书或证书链,用于替换密钥库中现有的证书链(最初由自签名证书组成)。

与别名相关联的私钥用于创建PKCS#10证书请求。要访问私钥,必须提供正确的密码。如果keypass命令行没有提供,并且与用于保护密钥库完整性的密码不同,则会提示用户。如果dname提供,那么它被用作CSR中的主题。否则,将使用与别名关联的X.500可分辨名称。

该sigalg值指定应用于签署CSR的算法。

CSR存储在文件certreq_file中。如果没有指定文件,则输出CSR stdout。

使用importcert命令从CA导入响应。

-exportcert
 {-alias alias } {-file cert_file } {-storetype storetype } {-keystore keystore }
[-storepass storepass ] {-providerName provider_name }
{-providerClass provider_class_name {-providerArg provider_arg }}
{-rfc} {-v} {-protected} {-Jjavaoption}
从密钥库中读取与别名相关联的证书,并将其存储在cert_file文件中。当没有指定文件时,将输出证书stdout。

默认情况下,证书是二进制编码。如果-rfc指定了该选项,则以Internet RFC 1421证书编码标准定义的可打印编码格式的输出。

如果alias引用可信证书,那么该证书将被输出。否则,alias指具有关联证书链的密钥条目。在这种情况下,返回链中的第一个证书。该证书对该实体的公钥进行认证alias。

此命令-export在早期版本中命名。此版本中仍然支持旧名称。新的名字,-exportcert更喜欢向前推进。

-list
 {-alias alias } {-storetype storetype } {-keystore keystore } [-storepass storepass ]
{-providerName provider_name }
{-providerClass provider_class_name {-providerArg provider_arg }}
{-v | -rfc} {-protected} {-Jjavaoption}
打印到stdout由密码库条目标识的内容alias。如果alias指定了no ,则打印整个密钥库的内容。

此命令默认打印证书的SHA1指纹。如果-v指定了该选项,那么该证书将以可读取的格式打印,并附有其他信息,如所有者,发行者,序列号和任何扩展名。如果-rfc指定了该选项,则使用Internet RFC 1421证书编码标准定义的可打印编码格式打印证书内容。

你不能同时指定-v和-rfc。

-printcert
 {-file cert_file | -sslserver host [:port ]} {-jarfile JAR_file {-rfc} {-v}
{} -Jjavaoption
从文件cert_file,位于host:port的SSL服务器或签名的JAR文件读取证书JAR_file(使用-jarfile选项,以人为可读的格式打印其内容)当没有指定端口时,假定标准HTTPS端口443请注意,-sslserver并不能同时提供-file选项,否则报告错误,如果未指定任何选项,则从中读取证书stdin。

当-rfc指定时,该keytool命令打印在PEM模式证书由互联网RFC 1421证书编码标准中所定义。

-printcrl
-file crl_ {-v}
从文件中读取证书吊销列表(CRL)crl_。CRL是由发布它们的CA撤销的数字证书的列表。CA生成crl_文件。

注意:此选项可以独立于密钥库使用。

-storepasswd
[-new new_storepass ] {-storetype storetype } {-keystore keystore }
[-storepass storepass ] {-providerName provider_name }
{-providerClass provider_class_name {-providerArg provider_arg }}
{-v} {-Jjavaoption}
更改用于保护密钥库内容完整性的密码。新密码new_storepass必须至少为6个字符。

-keypasswd
{-alias alias } [ -keypass old_keypass ] [-new new_keypass ] {-storetype storetype }
{-keystore keystore } [-storepass storepass ] {-providerName provider_name }
{-providerClass provider_class_name {-providerArg provider_arg }} {-v}
{} -Jjavaoption
更改其下查明的私有/私钥密码alias保护,从old_keypass到new_keypass,它必须至少6个字符。

如果-keypass在命令行中没有提供该选项,并且密钥密码与密钥库密码不同,则会提示用户。

如果-new在命令行中没有提供该选项,则会提示用户


-changealias
{-alias alias } [-destalias destalias ] [ -keypass keypass ] {-storetype storetype }
{-keystore keystore } [-storepass storepass ] {-providerName provider_name }
{-providerClass provider_class_name {-providerArg provider_arg }} {-v}
{-protected} {-Jjavaoption}
将现有的密钥库条目从指定alias的别名移动到新的别名destalias。如果没有提供目的地别名,则命令将提示输入目标别名。如果使用输入密码保护原始条目,则可以提供该-keypass选项的密码。如果没有提供密码密码,则storepass首先尝试(如果提供)。如果尝试失败,则会提示用户输入密码。


34. native2ascii  本地编码到ASCII编码的转换器(Native-to-ASCII Converter),用于"任意受支持的字符编码"和与之对应的"ASCII编码和(或)Unicode转义"之间的相互转换。

35. orbd  对象请求代理守护进程(Object Request Broker Daemon),它使客户端能够透明地定位和调用位于CORBA环境的服务器上的持久对象。

36. pack200  JAR文件打包压缩工具,它可以利用Java类特有的结构,对普通JAR文件进行高效压缩,以便于能够更快地进行网络传输。

pack200 [options] output-file JAR-file

-r
--repack 通过打包和解包JAR文件来生成一个JAR文件。
-g
--no-gzip 生成pack200文件。使用此选项,必须使用合适的压缩器,目标系统必须使用相应的解压缩器。

pack200 --no-gzip myarchive.pack myarchive.jar
-G
--strip-debug 从输出条带调试属性。这些措施包括SourceFile,LineNumberTable,LocalVariableTable和LocalVariableTypeTable。删除这些属性减少了下载和安装的大小,但降低了调试器的有用性。

--keep-file-order 保存输入文件中的文件顺序。这是默认行为。

-O
--no-keep-file-order 封隔器重新排列并传输所有元素。打包程序还可以删除JAR目录名称以减少下载大小。但是,某些JAR文件优化(如索引)可能无法正常工作。

-Svalue
--segment-limit=value 该值是每个归档段的估计目标大小N(以字节为单位)。如果单个输入文件需要超过N个字节,则提供其自己的归档段。作为一种特殊情况,-1产生具有所有输入文件的单个大段的值,而值0为每个类生成一个段。更大的归档段导致较少的碎片和更好的压缩,但是处理它们需要更多的内存。

通过对具有其名称和其他传输属性的大小的段中要传输的每个输入文件的大小进行计数来估计每个段的大小。

默认值为-1,这意味着打包程序创建单个段输出文件。在生成非常大的输出文件的情况下,强烈建议用户使用分割或将输入文件分解成更小的JAR。

-Evalue
--effort=value 如果该值设置为一位十进制数,则打包程序将使用指定的压缩压缩数据量。1级可能产生更大的尺寸和更快的压缩速度,而9级需要更长的时间,但可以产生更好的压缩。特殊值0指示pack200命令通过原始JAR文件直接复制而不进行压缩。JSR 200标准要求任何解包器将此特殊情况理解为整个存档的传递。

默认为5,投入适量的时间来产生合理的压缩。

-Hvalue
--deflate-hint=value 覆盖默认值,它保留输入信息,但可能导致传输的归档更大。可能的值是:true,false,或keep。

如果valueis true或false,则该packer200命令在输出存档中相应设置通缩提示,并且不会传送归档元素的各个通缩提示。

该keep值保留在输入JAR中观察到的通缩提示。这是默认值。

-mvalue
--modification-time=value 可能的值是latest和keep。
如果值为最新值,则打包程序将尝试确定最初修改时间,原始存档中的所有可用条目或该段中所有可用条目的最新修改时间。该单个值作为段的一部分传输,并应用于每个段中的所有条目。这可以以将所有安装的文件设置为单个日期为代价来大大减少存档的传输大小。

如果值为keep,则保留输入JAR中观察到的修改时间。这是默认值。

-Pfile
--pass-file=file 表示一个文件应该通过没有压缩的bytewise传递。通过重复该选项,可以指定多个文件。没有路径名转换,除了系统文件分隔符被替换为JAR文件分隔符斜线(/)。生成的文件名必须与JAR文件中出现的字符串完全一致。如果file是目录名称,则会传递该目录下的所有文件。

-Uaction
--unknown-attribute=action 覆盖默认行为,这意味着包含未知属性的类文件将通过指定的方式传递action。采取行动的可能值error,strip或pass。

-Cattribute-name=layout
--class-attribute=attribute-name=action
See next option.

-Fattribute-name=layout
--field-attribute=attribute-name=action
See next option.

-Mattribute-name=layout
--method-attribute=attribute-name=action
See next option.

-Dattribute-name=layout
--code-attribute=attribute-name=action 与以前的四个选项,该属性可以布局的一类实体来指定,例如class-attribute,field-attribute,method-attribute,和code-attribute。attribute-name是要为其定义布局或动作的属性的名称。对于可能的值的动作是some-layout-string,error,strip,pass。

some-layout-string:布局语言在JSR 200规范中定义,例如:--class-attribute=SourceFile=RUH。

如果值为error,则pack200操作失败并进行说明。

如果值为strip,则属性将从输出中删除。删除JVM所需的属性可能会导致类加载程序失败。例如,--class-attribute=CompilationID=pass导致包含此属性的类文件通过打包程序无需进一步操作即可传递。

如果值为pass,那么整个类就像资源一样被传输。

-f pack.properties
--config-file=pack.properties 可以在命令行中指定包含用于初始化打包程序的Java属性的配置文件。
pack200 -f pack.properties myarchive.pack.gz myarchive.jar
更多的pack.properties
#封隔器的通用属性。
modification.time最新=
deflate.hint = FALSE
keep.file.order = FALSE
#此选项将导致带有新属性的文件
#被报告为错误而不是未压缩传递。
unknown.attribute =错误
#将分段限制更改为无限制。
segment.limit = -1
 
-v
--verbose
Outputs minimal messages. Multiple specification of this option will create more verbose messages.

-q
--quiet
Specifies quiet operation with no messages.

-lfilename
--log-file=filename
Specifies a log file to output messages.

-?
-h
--help
Prints help information about this command.

-V
--version
Prints version information about this command.

-Joption
Passes the specified option to the Java Virtual Machine. For more information, see the reference page for the java(1) command. For example, -J-Xms48m sets the startup memory to 48 MB.

37. policytool  策略工具,用于管理用户策略文件(.java.policy)。

38. rmic Java RMI 编译器,为使用JRMP或IIOP协议的远程对象生成stub、skeleton、和tie类,也用于生成OMG IDL。

39. rmid  

Java RMI 激活系统守护进程,rmid启动激活系统守护进程,允许在虚拟机中注册或激活对象。
41. schemagen40. rmiregistry

42. serialver  序列版本命令,用于生成并返回serialVersionUID。

43. servertool Java IDL 服务器工具,用于注册、取消注册、启动和终止持久化的服务器。

44. tnameserv  Java IDL瞬时命名服务。

45. unpack200 JAR文件解压工具,将一个由pack200打包的文件解压提取为JAR文件

46. wsgen  XML Web Service 2.0的Java API,生成用于JAX-WS Web Service的JAX-WS便携式产物。

47. wsimport  XML Web Service 2.0的Java API,主要用于根据服务端发布的wsdl文件生成客户端存根及框架

48. xjc  主要用于根据XML schema文件生成对应的Java类。

 

------------后面再补吧...    有点累--------

 

 

 

转载于:https://my.oschina.net/u/3674060/blog/1538795

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值