1、命令
C/Documents and Settings/Zianed>ls ‘%JAVA_HOME%’/bin
HtmlConverter.exe javap.exe jstatd.exermid.exe
appletviewer.exe javaw.exe jvisualvm.exe rmiregistry.exe
apt.exejavaws.exe keytool.exe schemagen.exe
beanreg.dlljconsole.exekinit.exe serialver.exe
extcheck.exe jdb.exe klist.exe servertool.exe
idlj.exe jhat.exektab.exe tnameserv.exe
jar.exejinfo.exe msvcr71.dll unpack200.exe
jarsigner.exe jli.dll native2ascii.exe wsgen.exe
java-rmi.exe jmap.exeorbd.exe wsimport.exe
java.exe jps.exe pack200.exe xjc.exe
javac.exe jrunscript.exe packager.exe
javadoc.exejstack.exe policytool.exe
javah.exe jstat.exe rmic.exe
需要获得其中的帮助使用XX -help即可
Basic Tools
These tools are the foundation of the JDK. They are the tools you use to create and build applications.
Tool Name Brief Description Links to Reference Pages
javac The compiler for the Java programming language. [Solaris and Linux ] [Windows ]
java The launcher for Java applications. In this release, a single launcher is used both for development and deployment.
The old deployment launcher, jre , is no longer provided. [Solaris and Linux ] [Windows ]
javadoc API documentation generator.
See Javadoc Tool page for doclet and taglet APIs. [Solaris and Linux ] [Windows ]
apt Annotation processing tool.
See Annotation Processing Tool for program annotation processing. [Solaris, Linux, and Windows ]
appletviewer Run and debug applets without a web browser. [Solaris and Linux ] [Windows ]
jar Create and manage Java Archive (JAR) files.
See Java Archive Files page for the JAR specification. [Solaris and Linux ] [Windows ]
jdb The Java Debugger.
See JPDA for the debugger architecture specifications. [Solaris and Linux ] [Windows ]
javah C header and stub generator. Used to write native methods. [Solaris and Linux ] [Windows ]
javap Class file disassembler [Solaris and Linux ] [Windows ]
extcheck Utility to detect Jar conflicts. [Solaris and Linux ] [Windows ]
--------------------------------------------------------------------------------
Monitoring and Management Tools
You can use the following tools to monitor JVM performance and resource consumption. The tools described in this section are unsupported and experimental , and should be used with that in mind. They may not be available in future JDK versions.
Platform support:
•jconsole: all platforms.
•jps, jstat, and jstatd: all platforms except Windows 98 and Windows ME.
For more information, see Monitoring and Management for the Java Platform .
Tool Name Brief Description
jconsole Experimental : Java Monitoring and Management Console – JMX-compliant graphical tool for monitoring a Java virtual machine. It can monitor both local and remote JVMs.
jps Experimental : JVM Process Status Tool – Lists instrumented HotSpot Java virtual machines on a target system.
jstat Experimental : JVM Statistics Monitoring Tool – Attaches to an instrumented HotSpot Java virtual machine and collects and logs performance statistics as specified by the command line options.
jstatd Experimental : JVM jstat Daemon – Launches an RMI server application that monitors for the creation and termination of instrumented HotSpot Java virtual machines and provides a interface to allow remote monitoring tools to attach to Java virtual machines running on the local system.
--------------------------------------------------------------------------------
Troubleshooting Tools
The following tools can be used for specific troubleshooting tasks. The tools described in this section are unsupported and experimental in nature and should be used with that in mind. They may not be available in future JDK versions.
These tools are not currently available on Windows platforms .
Tool Name Brief Description
jinfo Experimental – Configuration Info for Java – Prints configuration information for for a given process or core file or a remote debug server.
jmap Experimental – Memory Map for Java – Prints shared object memory maps or heap memory details of a given process or core file or a remote debug server.
jsadebugd Experimental – Serviceability Agent Debug Daemon for Java – Attaches to a process or core file and acts as a debug server.
jstack Experimental – Stack Trace for Java – Prints a stack trace of threads for a given process or core file or remote debug server.
2 、命令简单介绍
2.1 HtmlConverter
2.2 appletviewer
查看Applet程序的运行结果。
2.3 apt
2.4 extcheck
2.5 idlj
2.6 jar
将一个文件打成jar包,以提供给给程序,方便使用。
bash-3.2$ jar -help
非法选项:h
用法: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files …
选项包括:
-c 创建新的归档文件
-t 列出归档目录
-x 解压缩已归档的指定(或所有)文件
-u 更新现有的归档文件
-v 在标准输出中生成详细输出
-f 指定归档文件名
-m 包含指定清单文件中的清单信息
-e 为捆绑到可执行 jar 文件的独立应用程序
指定应用程序入口点
-0 仅存储;不使用任何 ZIP 压缩
-M 不创建条目的清单文件
-i 为指定的 jar 文件生成索引信息
-C 更改为指定的目录并包含其中的文件
如果有任何目录文件,则对其进行递归处理。
清单文件名、归档文件名和入口点名的指定顺序
与 “m”、”f” 和 “e” 标志的指定顺序相同。
示例 1:将两个类文件归档到一个名为 classes.jar 的归档文件中:
jar cvf classes.jar Foo.class Bar.class
示例 2:使用现有的清单文件 “mymanifest” 并
将 foo/ 目录中的所有文件归档到 “classes.jar” 中:
jar cvfm classes.jar mymanifest -C foo/ .
bash-3.2$ jar -cvf zianed.jar *.class
标明清单(manifest)
增加:A.class(读入= 112) (写出= 105)(压缩了 6%)
增加:B.class(读入= 246) (写出= 184)(压缩了 25%)
bash-3.2$
2.7 jarsigner
2.8 java-rmi
2.9 java
执行java语言,期中包括了一部分的java执行可以使用和引入的参数;也包括了部分执行时的信息收集信息。
bash-3.2$ java -version
java version “1.6.0_10″
Java(TM) SE Runtime Environment (build 1.6.0_10-b33)
Java HotSpot(TM) Client VM (build 11.0-b15, mixed mode)
2.10 javac
java编译器,将java源文件编译成可以供jvm执行的二进制class文件。
bash-3.2$ javac -version
javac 1.6.0_10
2.11 javadoc
根据源文件生成java的doc文档API。
2.12 javah
bash-3.2$ cd zianed
bash-3.2$ ls B.*
B.class B.java
bash-3.2$ cd ..
bash-3.2$ javah zianed.B
bash-3.2$ ls
zianed zianed_B.h
bash-3.2$
2.13 javap
将java字节码文件进行反编译的工具。
bash-3.2$ javap zianed.B
Compiled from “B.java”
public class zianed.B extends java.lang.Object implements zianed.A{
public zianed.B()
public void print()
public native java.lang.String getInfo()
}
bash-3.2$
2.14 javaw
The javaw command is identical to java , except that with javaw there is no associated console window. Use javaw when you don’t want a command prompt window to appear. The javaw launcher will, however, display a dialog box with error information if a launch fails for some reason.
2.15 javaws:
2.16 jconsole
Java Monitoring and Management Console
启动java进程监控和管理控制台。监控和分析jvm的运行情况。
用法: jconsole [ -interval=n ] [ -notile ] [ -pluginpath <path>] [ -version ] [ connection ...]
-interval 将更新间隔时间设置为 n 秒(默认值为 4 秒)
-notile 最初不平铺显示窗口(对于两个或更多连接)
-pluginpath 指定 jconsole 用于查找插件的路径
-version输出程序版本
connection = pid || host:port || JMX URL (service:jmx:<protocol>://…)
pid 目标进程的进程 ID
host 远程主机名或 IP 地址
port 用于远程连接的端口号
-J对正在运行 jconsole 的 Java 虚拟机指定输入参数
Options are mutually exclusive. Option, if used, should follow immediately after the command name.
jstack prints Java stack traces of Java threads for a given Java process or core file or a remote debug server.
bash-3.2$ jstack -help
The jstatd tool is an RMI server application that monitors for the creation and termination of instrumented HotSpot Java virtual machines (JVMs) and provides a interface to allow remote monitoring tools to attach to JVMs running on the local host.
bash-3.2$ jstatd –help
Virtual Machine jstat Daemon
usage: jstatd [-nr] [-p port] [-n rminame]
2.26 jvisualvm
启动VisualVM查看VM状态。
bash-3.2$ jvisualvm &
[1] 3660
bash-3.2$
2.27 keytool
2.28 kinit
2.29 klist
2.30 ktab
2.31 native2ascii
对文件转换编码。
用法:native2ascii [-reverse] [-encoding 编码] [输入文件 [输出文件]]
2.32 orbd
2.33 pack200
2.34 packager
2.35 polocytool
2.36 rmic
2.37 rmid
2.38 rmiregisty
2.39 schemagen
2.40 serialver
2.41 servertool
2.42 tnameserv
2.43 unpack200
2.44 wsgen
2.45 wsimport
2.46 xjc
3、jvm的部分参数
也就是在启动Java虚拟机、或者执行JAVA时应该添加的程序。
Windows平台下在以下路径下存在参数说明。
-Xmixed mixed mode execution (default)
-Xint interpreted mode execution only
-Xbootclasspath<directories and zip/jar files separated by >
set search path for bootstrap classes and resources
-Xbootclasspath/a<directories and zip/jar files separated by >
append to end of bootstrap class path
-Xbootclasspath/p<directories and zip/jar files separated by >
prepend in front of bootstrap class path
-Xnoclassgc disable class garbage collection
-Xincgc enable incremental garbage collection
-Xloggc<file> log GC status to a file with time stamps
-Xbatch disable background compilation
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
-Xss<size> set java thread stack size
-Xprofoutput cpu profiling data
-Xfuture enable strictest checks, anticipating future default
-Xrs reduce use of OS signals by Java/VM (see documentation)
-Xcheckjni perform additional checks for JNI functions
-Xshareoff do not attempt to use shared class data
-Xshareauto use shared class data if possible (default)
-Xshareon require using shared class data, otherwise fail.
The -X options are non-standard and subject to change without notice.
5 、最常用的工具
javac Java源代码编译工具
1.Java是简单的
Java与C++极为相似,但却简单得多。高级编程语言的所有特性中,不是绝对需要的都已删去了。例如,Java没有算符过载、标题文件、预处理、指针运算、结构、联合、多维数组、模板及隐式类型变换。如果你知道一点C、C++或Pascal,你很快就会驾驭Java.这里是一个简单的 JavaHelloWorld程序:
publicclassHelloInternet{publicstaticvoidmain(Stringargv[]){System.out.println(“HelloIn-ternet!”)}}
2.Java是面向对象的
Java是一种面向对象的编程语言。除了简单的类型,如数字和布尔算子之外,Java中的大部分都是对象。
正如任何面向对象的语言一样,Java代码也按类组织。每个类定义一组规定对象行为的方法。一个类可以继承另一个类的行为。在类的根层次上,通常是类对象。
Java支持单继承类层次结构。这就是说,每个类一次只能继承一个别的类。有些语言允许多继承性,但这可能造成混乱,使语言不必要地复杂化。例如,难以想像,一个对象会继承两个完全不同的类的行为。
Java还支持摘要类的接口。这允许编程人员先定义接口的方法,而不必急于马上确定方法的实现。一个类可以施行多个接口,从而具有真正多继承性的许多优点。一个对象也可实施任意数量的接口。Java接口与IDL接口极其相似。很容易建立IDLJ编译器。这就是说,Java可用于CORBA对象系统来建立分布式对象系统。鉴于在许多计算机系统中都采用IDL接口和CORBA对象系统,这种兼容性是重要的。
3.Java是静态类型的
在一个Java程序中,必须定义所用对象(数字、字符、数组等)的类型。这有助于编程人员很快发现问题,因为当程序编译时可以检测类型错误。
不过,Java系统中的对象也有动态类型。要求一个对象为动态类型往往是可能的,所以编程人员写的程序可以对不同类型的对象做不同的事。
4.Java是编译型的
当运行Java程序时,它首先被编译成字节代码。字节代码非常类似于机器指令,所以Java程序非常高效。然而,字节代码并不专对一种特定的机器,所以Java程序无需重新编译便可在众多不同的计算机上执行。
Java源程序被编译成类文件,它相当于程序的字节代码表现。在一个Java类文件中,所有对方法及实例变量的参照均按名进行,并在第一次执行代码时加以分辨。这使得代码更通用,更不易受修改的影响,而仍具高效。
5.Java是体系结构中立的
Java语言对每种计算机都一样。比如,简单的类型都是不变的:整数总是32位,长整数总是64位。令人奇怪的是,诸如C及C++等时髦的编程语言却不是这样。由于这些语言定义如此自由,每种编译器及开发环境便各有不同了,这使程序的移植成为讨厌的问题。Java程序的移植却很容易,而且不需要进行重新编译。
6.Java是健全的
Java程序不可能造成计算机崩溃。Java系统仔细检测对内存的每次访问,确认它是合法的,而且不致引起任何问题。
不过,即使Java程序也可能有错误。如果出现某种出乎意料之事,程序不会崩溃,而把该例外抛弃。程序会发现这类例外,并加以处理。
传统的程序可以访问计算机的全部内存。程序可能(无意识地)修改内存中的任何值,这就会造成问题。Java程序只能访问内存中允许它们访问的那些部分,所以Java程序不可能修改不拟修改的值。
7.Java是小巧的
由于Java的设计是要在小的计算机上运行,作为一种编程语言来说其系统是相对较小的。它能有效地在4MB以上RAM的PC机上运行。Java翻译器只占用几百KB.这种翻译器对Java的平台无关性和可移植性是可靠的。
由于Java很小,它对内存很小的计算机,如基于Java的PC机,以及电视机、烤箱、电话机及家用计算机等,是很理想的。
8.Java是多线程的
Java程序可以执行一个以上的线程。比如,它可以在一个线程中完成某一耗时的计算,而其它线程与用户进行交互对话。所以用户不必停止工作,等待Java程序完成耗时的计算。
在多线程环境中的编程通常是困难的,因为许多东西可能同时出现。但是,Java提供了易于使用的同步特性,使编程更为方便。
Java线程通常被映射为实际的 *** 作系统线程,只要底层 *** 作系统支持这种映射。因此,用Java写的应用程序可说是“MP热”。这就是说,如果它们在多处理器机器上运行,它们更将表现不凡。
9.Java是可收集无用的存储单元的
用C及C++写软件的编程人员必须仔细跟踪所用的内存块。当一个块不再使用时,他们务必让程序释放它,从而方可再用。在大的项目中,这可能很困难,并往往成为出错和内存不足的根源。
在Java的情况下,编程人员不必为内存管理 *** 心。Java系统有一个叫做“无用单元收集器”的内置程序,它扫描内存,并自动释放那些不再使用的内存块。
10.Java是快速的
Java比典型的脚本语言大为有效,但它比C慢20倍。这对大多数应用是可接受的。
不久的将来,代码生成器就可供利用了,这将使Java程序几近于用C或C++编写的程序那么快。
11.Java是安全的
Java程序没有指针,而且象这样的字节代码程序强在类型上,所以在执行之前它可能验证Java程序。被验证的Java程序得以保证不突破Java语言的任何限制,而且可以安全地执行。Java字节代码验证被Web浏览器用来确保小程序不含病毒。
12.Java是可扩展的
Java程序可与用其它语言编写的现存程序库连接。由于Java数据结构与C的数据结构的类型极为相似,这是相当方便的。的问题在于,现有多线程程序库为数不多。
Java程序可以声明某些方法是内部的,然后,把这些内部方法映射成软件库所定义的功能,从而动态地链接到虚拟机。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)