首页编程java编程java安装时什么为空文件系统?Java安装后JDKbin目录下的许多exe文件有什么用途。

java安装时什么为空文件系统?Java安装后JDKbin目录下的许多exe文件有什么用途。

编程之家2023-10-1392次浏览

其实java安装时什么为空文件系统的问题并不复杂,但是又很多的朋友都不太了解Java安装后JDK/bin目录下的许多exe文件有什么用途。,因此呢,今天小编就来为大家分享java安装时什么为空文件系统的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

java安装时什么为空文件系统?Java安装后JDKbin目录下的许多exe文件有什么用途。

java里测试添加的命令语句是什么

ava性能调试命令

java性能调试命令_性能测试--十个命令迅速发现性能问题

投机启示录

java安装时什么为空文件系统?Java安装后JDKbin目录下的许多exe文件有什么用途。

原创

关注

0点赞·85人阅读

java安装时什么为空文件系统?Java安装后JDKbin目录下的许多exe文件有什么用途。

十个命令迅速发现性能问题

uptime

dmesg| tail

vmstat 1

mpstat-P ALL 1

pidstat 1

iostat-xz 1

free-m

sar-n DEV 1

sar-n TCP,ETCP 1

top

1. uptime

$ uptime

23:51:26 up 21:31, 1 user, load average: 30.02, 26.43, 19.02

这是一种用来快速查看系统平均负载的方法,它表明了系统中有多少要运行的任务(进程)。在 Linux系统中,这些数字包含了需要在 CPU中运行的进程以及正在等待 I/O(通常是磁盘 I/O)的进程。它仅仅是对系统负载的一个粗略展示,稍微看下即可。你还需要其他工具来进一步了解具体情况。

这三个数字展示的是一分钟、五分钟和十五分钟内系统的负载总量平均值按照指数比例压缩得到的结果。从中我们可以看到系统的负载是如何随时间变化的。比方你在检查一个问题,然后看到 1分钟对应的值远小于 15分钟的值,那么可能说明这个问题已经过去了,你没能及时观察到。

在上面这个例子中,系统负载在随着时间增加,因为最近一分钟的负载值超过了 30,而 15分钟的平均负载则只有 19。这样显著的差距包含了很多含义,比方 CPU负载。若要进一步确认的话,则要运行 vmstat或 mpstat命令。

2. dmesg| tail

$ dmesg| tail

[1880957.563150] perl invoked oom-killer: gfp_mask=0x280da, order=0, oom_score_adj=0

[...]

[1880957.563400] Out of memory: Kill process 18694(perl) score 246 or sacrifice child

[1880957.563408] Killed process 18694(perl) total-vm:1972392kB, anon-rss:1953348kB, file-rss:0kB

[2320864.954447] TCP: Possible SYN flooding on port 7001. Dropping request. Check SNMP counters.

这条命令显式了最近的 10条系统消息,如果它们存在的话。查找能够导致性能问题的错误。上面的例子包含了 oom-killer,以及 TCP丢弃一个请求。

千万不要错过这一步!dmesg命令永远值得一试

3. vmstat 1

$ vmstat 1

procs---------memory-------------swap-------io-----system--------cpu-----

r b swpd free buff cache si so bi bo in cs us sy id wa st

34 0 0 200889792 73708 591828 0 0 0 5 6 10 96 1 3 0 0

32 0 0 200889920 73708 591860 0 0 0 592 13284 4282 98 1 1 0 0

32 0 0 200890112 73708 591860 0 0 0 0 9501 2154 99 1 0 0 0

32 0 0 200889568 73712 591856 0 0 0 48 11900 2459 99 0 0 0 0

32 0 0 200890208 73712 591860 0 0 0 0 15898 4840 98 1 1 0 0

vmstat(8)是虚拟内存统计的简称,其是一个常用工具(几十年前为了 BSD所创建)。其在每行打印一条关键的服务器的统计摘要。

vmstat命令指定一个参数 1运行,来打印每一秒的统计摘要。(这个版本的 vmstat)输出的第一行的那些列,显式的是开机以来的平均值,而不是前一秒的值。现在,我们跳过第一行,除非你想要了解并记住每一列。

检查这些列:

r:CPU中正在运行和等待运行的进程的数量。其提供了一个比平均负载更好的信号来确定 CPU是否饱和,因为其不包含 I/O。解释:“r”的值大于了 CPU的数量就表示已经饱和了。

free:以 kb为单位显式的空闲内存。如果数字位数很多,说明你有足够的空闲内存。“free-m”命令,是下面的第七个命令,其可以更好的说明空闲内存的状态。

si, so:Swap-ins和 swap-outs。如果它们不是零,则代表你的内存不足了。

us, sy, id, wa, st:这些都是平均了所有 CPU的 CPU分解时间。它们分别是用户时间(user)、系统时间(内核)(system)、空闲(idle)、等待 I/O(wait)、以及占用时间(stolen)(被其他访客,或使用 Xen,访客自己独立的驱动域)。

CPU分解时间将会通过用户时间加系统时间确认 CPU是否为忙碌状态。等待 I/O的时间一直不变则表明了一个磁盘瓶颈;这就是 CPU的闲置,因为任务都阻塞在等待挂起磁盘 I/O上了。你可以把等待 I/O当成是 CPU闲置的另一种形式,其给出了为什么 CPU闲置的一个线索。

对于 I/O处理来说,系统时间是很重要的。一个高于 20%的平均系统时间,可以值得进一步的探讨:也许内核在处理 I/O时效率太低了。

在上面的例子中,CPU时间几乎完全花在了用户级,表明应用程序占用了太多 CPU时间。而 CPU的平均使用率也在 90%以上。这不一定是一个问题;检查一下“r”列中的饱和度。

4. mpstat-P ALL 1

$ mpstat-P ALL 1

Linux 3.13.0-49-generic(titanclusters-xxxxx) 07/14/2015 _x86_64_(32 CPU)

07:38:49 PM CPU%usr%nice%sys%iowait%irq%soft%steal%guest%gnice%idle

07:38:50 PM all 98.47 0.00 0.75 0.00 0.00 0.00 0.00 0.00 0.00 0.78

07:38:50 PM 0 96.04 0.00 2.97 0.00 0.00 0.00 0.00 0.00 0.00 0.99

07:38:50 PM 1 97.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 2.00

07:38:50 PM 2 98.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 1.00

07:38:50 PM 3 96.97 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 3.03

[...]

这个命令打印每个 CPU的 CPU分解时间,其可用于对一个不均衡的使用情况进行检查。一个单独 CPU很忙碌则代表了正在运行一个单线程的应用程序。

5. pidstat 1

$ pidstat 1

Linux 3.13.0-49-generic(titanclusters-xxxxx) 07/14/2015 _x86_64_(32 CPU)

07:41:02 PM UID PID%usr%system%guest%CPU CPU Command

07:41:03 PM 0 9 0.00 0.94 0.00 0.94 1 rcuos/0

07:41:03 PM 0 4214 5.66 5.66 0.00 11.32 15 mesos-slave

07:41:03 PM 0 4354 0.94 0.94 0.00 1.89 8 java

07:41:03 PM 0 6521 1596.23 1.89 0.00 1598.11 27 java

07:41:03 PM 0 6564 1571.70 7.55 0.00 1579.25 28 java

07:41:03 PM 60004 60154 0.94 4.72 0.00 5.66 9 pidstat

07:41:03 PM UID PID%usr%system%guest%CPU CPU Command

07:41:04 PM 0 4214 6.00 2.00 0.00 8.00 15 mesos-slave

07:41:04 PM 0 6521 1590.00 1.00 0.00 1591.00 27 java

07:41:04 PM 0 6564 1573.00 10.00 0.00 1583.00 28 java

07:41:04 PM 108 6718 1.00 0.00 0.00 1.00 0 snmp-pass

07:41:04 PM 60004 60154 1.00 4.00 0.00 5.00 9 pidstat

pidstat命令有点像 top命令对每个进程的统计摘要,但循环打印一个滚动的统计摘要来代替 top的刷屏。其可用于实时查看,同时也可将你所看到的东西(复制粘贴)到你的调查记录中。

上面的例子表明两个 Java进程正在消耗 CPU。%CPU这列是所有 CPU合计的;1591%表示这个 Java进程消耗了将近 16个 CPU。

6. iostat-xz 1

$ iostat-xz 1

Linux 3.13.0-49-generic(titanclusters-xxxxx) 07/14/2015 _x86_64_(32 CPU)

avg-cpu:%user%nice%system%iowait%steal%idle

73.96 0.00 3.73 0.03 0.06 22.21

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm%util

xvda 0.00 0.23 0.21 0.18 4.52 2.08 34.37 0.00 9.98 13.80 5.42 2.44 0.09

xvdb 0.01 0.00 1.02 8.94 127.97 598.53 145.79 0.00 0.43 1.78 0.28 0.25 0.25

xvdc 0.01 0.00 1.02 8.86 127.79 595.94 146.50 0.00 0.45 1.82 0.30 0.27 0.26

dm-0 0.00 0.00 0.69 2.32 10.47 31.69 28.01 0.01 3.23 0.71 3.98 0.13 0.04

dm-1 0.00 0.00 0.00 0.94 0.01 3.78 8.00 0.33 345.84 0.04 346.81 0.01 0.00

dm-2 0.00 0.00 0.09 0.07 1.35 0.36 22.50 0.00 2.55 0.23 5.62 1.78 0.03

[...]

这是用于查看块设备(磁盘)情况的一个很棒的工具,无论是对工作负载还是性能表现来说。查看个列:

r/s, w/s, rkB/s, wkB/s:这些分别代表该设备每秒的读次数、写次数、读取 kb数,和写入 kb数。这些用于描述工作负载。性能问题可能仅仅是由于施加了过大的负载。

await:以毫秒为单位的 I/O平均消耗时间。这是应用程序消耗的实际时间,因为它包括了排队时间和处理时间。比预期更大的平均时间可能意味着设备的饱和,或设备出了问题。

avgqu-sz:向设备发出的请求的平均数量。值大于 1说明已经饱和了(虽说设备可以并行处理请求,尤其是由多个磁盘组成的虚拟设备。)

%util:设备利用率。这个值是一个显示出该设备在工作时每秒处于忙碌状态的百分比。若值大于 60%,通常表明性能不佳(可以从 await中看出),虽然它取决于设备本身。值接近 100%通常意味着已饱和。

如果该存储设备是一个面向很多后端磁盘的逻辑磁盘设备,则 100%利用率可能只是意味着当前正在处理某些 I/O占用,然而,后端磁盘可能远未饱和,并且可能能够处理更多的工作。

请记住,磁盘 I/O性能较差不一定是程序的问题。许多技术通常是异步 I/O,使应用程序不会被阻塞并遭受延迟(例如,预读,以及写缓冲)。

7. free-m

$ free-m

total used free shared buffers cached

Mem: 245998 24545 221453 83 59 541

-/+ buffers/cache: 23944 222053

Swap: 0 0 0

右边的两列显式:

buffers:用于块设备 I/O的缓冲区缓存。

cached:用于文件系统的页面缓存。

我们只是想要检查这些不接近零的大小,其可能会导致更高磁盘 I/O(使用 iostat确认),和更糟糕的性能。上面的例子看起来还不错,每一列均有很多 M个大小。

比起第一行,-/+ buffers/cache提供的内存使用量会更加准确些。Linux会把暂时用不上的内存用作缓存,一旦应用需要的时候就立刻重新分配给它。所以部分被用作缓存的内存其实也算是空闲的内存。为了解释这一点,甚至有人专门建了个网站: linuxatemyram。

如果你在 Linux上安装了 ZFS,这一点会变得更加困惑,因为 ZFS它自己的文件系统缓存不算入free-m。有时候发现系统已经没有多少空闲内存可用了,其实内存却都待在 ZFS的缓存里。

8. sar-n DEV 1

$ sar-n DEV 1

Linux 3.13.0-49-generic(titanclusters-xxxxx) 07/14/2015 _x86_64_(32 CPU)

12:16:48 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s%ifutil

12:16:49 AM eth0 18763.00 5032.00 20686.42 478.30 0.00 0.00 0.00 0.00

12:16:49 AM lo 14.00 14.00 1.36 1.36 0.00 0.00 0.00 0.00

12:16:49 AM docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

12:16:49 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s%ifutil

12:16:50 AM eth0 19763.00 5101.00 21999.10 482.56 0.00 0.00 0.00 0.00

12:16:50 AM lo 20.00 20.00 3.25 3.25 0.00 0.00 0.00 0.00

12:16:50 AM docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

这个工具可以被用来检查网络接口的吞吐量:rxkB/s和 txkB/s,以及是否达到限额。上面的例子中,eth0接收的流量达到 22Mbytes/s,也即 176Mbits/sec(限额是 1Gbit/sec)

我们用的版本中还提供了%ifutil作为设备使用率(接收和发送的最大值)的指标。我们也可以用 Brendan的 nicstat工具计量这个值。一如 nicstat,sar显示的这个值是很难精确取得的,在这个例子里面,它就没在正常的工作(0.00)。

9. sar-n TCP,ETCP 1

$ sar-n TCP,ETCP 1

Linux 3.13.0-49-generic(titanclusters-xxxxx) 07/14/2015 _x86_64_(32 CPU)

12:17:19 AM active/s passive/s iseg/s oseg/s

12:17:20 AM 1.00 0.00 10233.00 18846.00

12:17:19 AM atmptf/s estres/s retrans/s isegerr/s orsts/s

12:17:20 AM 0.00 0.00 0.00 0.00 0.00

12:17:20 AM active/s passive/s iseg/s oseg/s

12:17:21 AM 1.00 0.00 8359.00 6039.00

12:17:20 AM atmptf/s estres/s retrans/s isegerr/s orsts/s

12:17:21 AM 0.00 0.00 0.00 0.00 0.00

这是一些关键的 TCP指标的汇总视图。这些包括:

active/s:每秒本地发起 TCP连接数(例如,通过 connect())。

passive/s:每秒远程发起的 TCP连接数(例如,通过 accept())。

retrans/s:每秒重传 TCP次数。

active和 passive的连接数往往对于描述一个粗略衡量服务器负载是非常有用的:新接受的连接数(passive),下行连接数(active)。可以理解为 active连接是对外的,而 passive连接是对内的,虽然严格来说并不完全正确(例如,一个 localhost到 localhost的连接)。

重传是出现一个网络和服务器问题的一个征兆。其可能是由于一个不可靠的网络(例如,公网)造成的,或许也有可能是由于服务器过载并丢包。上面的例子显示了每秒只有一个新的 TCP连接。

10. top

$ top

top- 00:15:40 up 21:56, 1 user, load average: 31.09, 29.87, 29.92

Tasks: 871 total, 1 running, 868 sleeping, 0 stopped, 2 zombie

%Cpu(s): 96.8 us, 0.4 sy, 0.0 ni, 2.7 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st

KiB Mem: 25190241+total, 24921688 used, 22698073+free, 60448 buffers

KiB Swap: 0 total, 0 used, 0 free. 554208 cached Mem

PID USER PR NI VIRT RES SHR S%CPU%MEM TIME+ COMMAND

20248 root 20 0 0.227t 0.012t 18748 S 3090 5.2 29812:58 java

4213 root 20 0 2722544 64640 44232 S 23.5 0.0 233:35.37 mesos-slave

66128 titancl+ 20 0 24344 2332 1172 R 1.0 0.0 0:00.07 top

5235 root 20 0 38.227g 547004 49996 S 0.7 0.2 2:02.74 java

4299 root 20 0 20.015g 2.682g 16836 S 0.3 1.1 33:14.42 java

1 root 20 0 33620 2920 1496 S 0.0 0.0 0:03.82 init

2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kthreadd

3 root 20 0 0 0 0 S 0.0 0.0 0:05.35 ksoftirqd/0

5 root 0-20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H

6 root 20 0 0 0 0 S 0.0 0.0 0:06.94 kworker/u256:0

8 root 20 0 0 0 0 S 0.0 0.0 2:38.05 rcu_sched

top命令包含了很多我们之前已经检查过的指标。可以方便的执行它来查看相比于之前的命令输出的结果有很大不同,这表明负载是可变的。

top的一个缺点是,很难看到数据随时间变动的趋势。vmstat和 pidstat提供的滚动输出会更清楚一些。如果你不以足够快的速度暂停输出(Ctrl-S暂停,Ctrl-Q继续),一些间歇性问题的线索也可能由于被清屏而丢失。

Java安装后JDK/bin目录下的许多exe文件有什么用途。

javac:Java编译器,将Java源代码换成字节代

java:Java解释器,直接从类文件执行Java应用程序代码

appletviewer(小程序浏览器):一种执行HTML文件上的Java小程序类的Java浏览器

javadoc:根据Java源代码及其说明语句生成的HTML文档

jdb:Java调试器,可以逐行地执行程序、设置断点和检查变量

javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件

Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义

jar:多用途的存档及压缩工具,是个java应用程序,可将多个文件合并为单个JAR归档文件。

htmlConverter——命令转换工具。

native2ascii——将含有不是Unicode或Latinl字符的的文件转换为Unicode编码字符的文件。

serialver——返回serialverUID。语法:serialver [show]命令选项show是用来显示一个简单的界面。输入完整的类名按Enter键或"显示"按钮,可显示serialverUID。

补充详细:

javac.exe

用法:javac<选项><源文件>

可能的选项包括:

-g生成所有调试信息

-g:none生成无调试信息

-g:{lines,vars,source}生成只有部分调试信息

-O优化;可能妨碍调试或者增大类文件

-nowarn生成无警告

-verbose输出关于编译器正在做的信息

-deprecation输出使用了不鼓励使用的API的源程序位置

-classpath<路径>指定用户类文件的位置

-sourcepath<路径>指定输入源文件的位置

-bootclasspath<路径>覆盖自举类文件的位置

-extdirs<目录(多个)>覆盖安装的扩展类的位置

-d<目录>指定输出类文件的位置

-encoding<编码>指定源文件中所用的字符集编码

-target<版本>生成指定虚拟机版本的类文件

-help Print a synopsis of standard options

appletviewer.exe

用法:appletviewer<options> url

其中,<options>包括:

-debug在 Java调试器中启动 applet小程序查看器

-encoding<encoding>指定由 HTML文件使用的字符编码

-J<runtime flag>向 Java解释器传递参数

-J选项不是标准选项,如有更改,不另行通知。

====================

jar.exe

用法:jar{ctxu}[vfm0M] [jar-文件] [manifest-文件] [-C目录]文件名...

选项:

-c创建新的存档

-t列出存档内容的列表

-x展开存档中的命名的(或所有的〕文件

-u更新已存在的存档

-v生成详细输出到标准输出上

-f指定存档文件名

-m包含来自标明文件的标明信息

-0只存储方式;未用ZIP压缩格式

-M不产生所有项的清单(manifest〕文件

-i为指定的jar文件产生索引信息

-C改变到指定的目录,并且包含下列文件:

如果一个文件名是一个目录,它将被递归处理。

清单(manifest〕文件名和存档文件名都需要被指定,按'm'和'f'标志指定的相同顺序。

示例1:将两个class文件存档到一个名为'classes.jar'的存档文件中:

jar cvf classes.jar Foo.class Bar.class

示例2:用一个存在的清单(manifest)文件'mymanifest'将 foo/目录下的所有

文件存档到一个名为'classes.jar'的存档文件中:

jar cvfm classes.jar mymanifest-C foo/.

javadoc.exe

用法:javadoc [options] [packagenames] [sourcefiles] [classnames] [@files]

-overview<file>读取 HTML格式的概述文档

-public仅显示 public类和成员

-protected显示 protected/public类和成员(缺省)

-package显示 package/protected/public类和成员

-private显示所有类和成员

-help显示命令行选项

-doclet<class>通过候选 doclet生成输出

-docletpath<path>指定 doclet类文件的查找位置

-sourcepath<pathlist>指定源文件的查找位置

-classpath<pathlist>指定用户类文件的查找位置

-exclude<pkglist> Specify a list of packages to exclude

-subpackages<subpkglist> Specify subpackages to recursively load

-breakiterator Compute 1st sentence with BreakIterator

-bootclasspath<pathlist>覆盖自举类加载器所加载的类文件的位置

-source<release> Provide source compatibility with specified release

-extdirs<dirlist>覆盖已安装的扩展的位置

-verbose有关 Javadoc所做工作的输出信息

-locale<name>所用的 Locale,例如 en_US或 en_US_WIN

-encoding<name>源文件编码名称

-J<flag>将<flag>直接传给运行时系统

由标准 doclet提供:

-d<directory>输出文件的目标目录

-use创建类和包的用法页

-version包含@version段

-author包含@author段

-docfilessubdirs Recursively copy doc-file subdirectories

-splitindex将索引分为每个字母对应一个文件

-windowtitle<text>文档的浏览器窗口标题

-doctitle<html-code>包含包索引页(首页)的标题

-header<html-code>包含每一页的页眉文本

-footer<html-code>包含每一页的页脚文本

-bottom<html-code>包含每一页的页底文本

-link<url> Create links to javadoc output at<url>

-linkoffline<url><url2> Link to docs at<url> using package list at<url2>

-excludedocfilessubdir<name1>:.. Exclude any doc-files subdirectories with given name.

-group<name><p1>:<p2>.. Group specified packages together in overview page

-nocomment Supress description and tags, generate only declarations.

-nodeprecated不包含@deprecated信息

-noqualifier<name1>:<name2>:... Exclude the list of qualifiers from the output.

-nosince Do not include@since information

-nodeprecatedlist不生成不鼓励使用的列表

-notree不生成类层次

-noindex不生成索引

-nohelp不生成帮助链接

-nonavbar不生成导航栏

-quiet Do not display status messages to screen

-serialwarn Generate warning about@serial tag

-tag<name>:<locations>:<header> Specify single argument custom tags

-taglet The fully qualified name of Taglet to register

-tagletpath The path to Taglets

-charset<charset> Charset for cross-platform viewing of generated documentation.

-helpfile<file>包含帮助链接功能链接到目标的文件

-linksource Generate source in HTML

-stylesheetfile<path>改变所生成文档的样式的文件

-docencoding<name>输出编码名称

javah.exe

用法:javah [options]<classes>

其中 [options]包括:

-help打印该帮助信息

-classpath<path>类的加载路径

-bootclasspath<path>自举类的加载路径

-d<dir>输出目录

-o<file>输出文件(仅能使用-d或-o之一)

-jni生成 JNI风格的头文件(缺省)

-old生成 JDK1.0风格的头文件

-stubs生成 stubs文件

-version打印版本信息

-verbose输出有关本命令所做工作的信息

-force始终写输出文件

指定<classes>时必须使用全名(例如 java.lang.Object)。

javaw.exe

====================

HtmlConverter.exe

用法:HtmlConverter [-option1 value1 [-option2 value2 [...]]] [-simulate] [filespecs]

其中,选项包括:

-source:获取源文件的路径。缺省值:<userdir>

-dest:写入已转换文件的路径。缺省值:<userdir>

-backup:写备份文件的路径。缺省值:<dirname>_BAK

-f:强制覆写备份文件。

-subdirs:应处理子目录中的文件。

-template:模板文件的路径。如果不确定,请使用缺省值。

-log:写日志的路径。如果没有提供,则不会写入任何日志。

-progress:转换时显示进度。缺省值: true

-simulate:在没有进行转换时显示特定于转换的信息。

-latest:使用最新的 JRE支持发行版 mimetype。

-gui:显示转换程序的图形用户界面。

filespecs:用空格分开的文件说明列表。缺省值:"*.html*.htm"(需要引号)

orbd.exe

用法:orbd<选项>

其中,<选项>包括:

-port启动 ORBD的激活端口,缺省值为 1049(可选)

-defaultdb ORBD文件的目录,缺省值为"./orb.db"(可选)

-serverid ORBD的服务器标识符,缺省值为 1(可选)

-ORBInitialPort初始端口(必需)

-ORBInitialHost初始主机名称(必需)

====================

policytool.exe

用法:policytool [选项]

[-file<file>]规则文件位置

====================

rmic.exe

用法:rmic<选项><类名>

其中<选项>包括:

-keep不删除中间生成的源文件

-keepgenerated(同"-keep")

-v1.1为 1.1 stub协议版本创建 stubs/skeleton

-vcompat(缺省)创建与 1.1和

1.2 stub协议版本兼容的 stubs/skeleton

-v1.2仅为 1.2 stub协议版本创建 stubs

-iiop为 IIOP创建 stubs。当使用该选项时,<选项>还应包括:

-always总创建 stubs(即使在它们同时出现时〕

-alwaysgenerate(同"-always")

-nolocalstubs不创建为同一进程优化的 stubs

-idl创建 IDL。当使用该选项时,<选项>还应包括:

-noValueMethods不生成值类型的方法

-always总创建 IDL(即使在它们同时出现时〕

-alwaysgenerate(同"-always")

-g一般调试信息

-depend以递归方式重编译过期的文件

-nowarn不警告

-nowrite不将编译过的类写入到文件系统

-verbose输出有关编译器所做工作的信息

-classpath<path>指定输入源和类文件的查找位置

-sourcepath<path>指定用户源文件的查找位置

-bootclasspath<path>覆盖自举类文件的位置

-extdirs<path>覆盖安装扩展类的位置

-d<directory>指定所生成类文件的放置位置

-J<runtime flag>将参数传给 java解释程序

====================

rmid.exe

用法:rmid<option>

其中,<option>包括:

-port<option>指定供 rmid使用的端口

-log<directory>指定 rmid将日志写入的目录

-stop停止当前的 rmid调用(对指定端口)

-C<runtime标记>向每个子进程传递参数(激活组)

-J<runtime标记>向 java解释程序传递参数

====================

rmiregistry.exe

用法: rmiregistry<选项><端口>

其中,<选项>包括:

-J<runtime标记>将参数传递到 java解释程序

====================

serialver.exe

用法:serialver [-classpath classpath] [-show] [classname...]

====================

servertool.exe

欢迎使用 Java IDL服务器工具

请在提示处输入命令

servertool> help

可用命令:

-------------------

register-注册一个可激活的服务器

unregister-取消服务器注册

getserverid-返回应用程序名称的服务器标识符

list-列举所有已注册服务器

listappnames-列举当前定义的应用程序名称

listactive-列举当前活动的服务器

locate-将已注册服务器定位在特定类型的端口

locateperorb-为已注册服务器的特定对象请求代理程序定位端口。

orblist-对象请求代理程序(orb)名称及其映射列表

shutdown-关闭一个已注册服务器

startup-启动一个已注册服务器

help-取得帮助

quit-退出此工具

====================

rmic

功能说明:

rmic为远程对象生成 stub和 skeleton。

语法:

rmic [ options ] package-qualified-class-name(s)

补充说明:

rmic编译器根据编译后的 Java类(含有远程对象实现)名,为远程对象生成 stub和 skeleton(远程对象是指实现 java.rmi.Remote接口的对象)。在 rmic命令中所给的类必须是经 javac命令成功编译且是完全包限定的类。

命令选项

-classpath[路径]指定 rmic用于查询类的路径。如果设置了该选项,它将覆盖缺省值或 CLASSPATH环境变量。目录用冒号分隔。

-d[目录]指定类层次的根目录。此选项可用来指定 stub和 skeleton文件的目标目录。

-depend使编译器考虑重新编译从其它类引用的类。一般来说,它只重新编译从源代码引用的遗漏或过期的类。

-g允许生成调试表格。调试表格含有行号和局部变量的有关信息,即 Java调试工具所使用的信息。缺省情况下,只生成行号。

-J与-D选项联用,它将紧跟其后的选项(-J与-D之间无空格)传给 java解释器。

-keepgenerated为 stub和 skeleton文件保留所生成的.java源文件,并将这些源文件写到与.class文件相同的目录中,如果要指定目录,则使用-d选项。

-nowarn关闭警告。如果使用该选项,则编译器不输出任何警告信息。

-show显示 rmic编译器的 GUI(图形用户界面)。输入一个或多个包限定类名(以空格分隔),并按回车键或“显示”按钮,创建 stub和 skeleton。

-vcompat(缺省值)创建与 JDK 1.1和 1.2 stub协议版本都兼容的 stub和 skeleton。

-verbose使编译器和链接器输出关于正在编译哪些类和正在加载哪些类文件的信息。

-v1.1创建 JDK 1.1 stub协议版本的 stub和 skeleton。

-v1.2只创建 JDK 1.2 stub协议版本的 stub。

=================================

rmid

功能说明:

rmid启动激活系统守护进程,以便能够在 Java虚拟机上注册和激活对象。

语法:

rmid [-port port] [-log dir]

补充说明:

rmid工具启动激活系统守护进程。必须先启动激活系统守护进程,才能向激活系统注册可被激活的对象或在 Java虚拟机上激活可被激活的对象。

命令选项

-C<某些命令行选项>指定一个选项,在创建每个 rmid的子守护进程(激活组)时,该选项以命令行参数的形式传给该子守护进程。

-log[目录]指定目录的名称,激活系统守护进程在该目录中写入其数据库及相关信息。缺省状态下,将在执行 rmid命令的目录中创建一个 log目录。

-port[端口]指定 rmid的注册服务程序所使用的端口。激活系统守护进程将 ActivationSystem与该注册服务程序中的名称java.rmi.activation.ActivationSystem捆绑在一起。

-stop停止-port选项所指定端口上的当前 rmid调用。若未指定端口,则将停止在端口 1098上运行的 rmid。

=============================

rmiregistry

功能说明:

rmiregistry命令可在当前主机的指定端口上启动远程对象注册服务程序。

语法:

rmiregistry [port]

补充说明:

rmiregistry命令在当前主机的指定 port上创建并启动远程对象注册服务程序。如果省略 port,则注册服务程序将在 1099端口上启动。rmiregistry命令不产生任何输出而且一般在后台运行。远程对象注册服务程序是自举命名服务。主机上的 RMI服务器将利用它将远程对象绑定到名字上。客户机即可查询远程对象并进行远程方法调用。注册服务程序一般用于定位应用程序需调用其方法的第一个远程对象。该对象反过来对各应用程序提供相应的支持,用于查找其它对象。java.rmi.registry.LocateRegistry类的方法可用于在某台主机或主机和端口上获取注册服务程序操作。java.rmi.Naming类的基于 URL的方法将对注册服务程序进行操作,并可用于查询远程对象、将简单(字符串)名称绑定到远程对象、将新名称重新绑定到远程对象(覆盖旧绑定)、取消远程对象的绑定以及列出绑定在注册服务程序上的 URL。

=============================

serialver

功能说明:

serialver命令返回 serialVersionUID。

语法:

serialver [命令选项 ]

补充说明:

serialver以适于复制到演变类的形式返回一个或多个类的 serialVersionUID。不带参数调用时,它输出用法行。

命令选项

-show显示一个简单的用户界面。输入完整的类名并按回车键或“显示”按钮可显示 serialVersionUID。

================================

jarsigner

功能说明:

为 Java归档(JAR)文件产生签名,并校验已签名的 JAR文件的签名。

语法:

jarsigner [命令选项 ] jar-file alias

jarsigner-verify [命令选项 ] jar-file

补充说明:

jarsigner工具用于两个目的:

1:为 Java归档(JAR)文件签名

2:校验已签名的 JAR文件的签名和完整性

命令选项

-keystore[url]指定密钥仓库的 URL。缺省值是用户的宿主目录中的.keystore文件,它由系统属性“user.home”决定。

-storetype[storetype]指定要被实例化的密钥仓库类型。默认的密钥仓库类型是安全属性文件中"keystore.type"属性值所指定的那个类型,由 java.security.KeyStore中的静态方法 getDefaultType返回。

-storepass[password]指定访问密钥仓库所需的口令。这仅在签名(不是校验)JAR文件时需要。在这种情况下,如果命令行中没有提供-storepass选项,用户将被提示输入口令。

-keypass[password]指定用于保护密钥仓库项(由命令行中指定的别名标出)的私钥的口令。使用 jarsigner为 JAR文件签名时需要该口令。如果命令行中没有提供口令,且所需的口令与密钥仓库的口令不同,则将提示用户输入它。

-sigfile[file]指定用于生成.SF和.DSA文件的基本文件名。

-signedjar[file]指定用于已签名的 JAR文件的名称。

-verify如果它出现在命令行中,则指定的 JAR文件将被校验,而不是签名。如果校验成功,将显示“jar verified”。如果试图校验未签名的 JAR文件,或校验被不支持的算法(例如未安装 RSA提供者时使用的 RSA)签名的 JAR文件,则将有如下显示:"jar is unsigned.(signatures missing or not parsable)"。

-certs如果它与-verify和-verbose选项一起出现在命令行中,则输出将包括 JAR文件的每个签名人的证书信息。

-verbose如果它出现在命令行中,则代表“verbose”模式,它使 jarsigner在 JAR签名或校验过程中输出额外信息。

-internalsf过去,JAR文件被签名时产生的.DSA(签名块)文件包含一个同时产生的.SF文件(签名文件)的完整编码副本。这种做法已被更改。为了减小输出 JAR文件的整个大小,缺省情况下.DSA文件不再包含.SF文件的副本。但是如果-internalsf出现在命令行中,将采用旧的做法。该选项主要在测试时有用;实际上不应使用它,因为这样将消除有用的优化。

-sectionsonly如果它出现在命令行中,则 JAR文件被签名时生成的.SF文件(签名文件)将不包括含有整个清单文件的散列的头。它仅包含与 JAR中每个单独的源文件相关的信息和散列。该选项主要在测试时有用;实际上不应使用它,因为这样将消除有用的优化。

-J[javaoption]将指定的 javaoption串直接传递到 Java解释器。((jarsigner实际上是解释器的一个“wrapper”)。该选项不应含有任何空格。它有助于调整执行环境或内存使用。要获得可用的解释器选项的清单,可在命令行键入 java-h或 java-X。

========================

keytool

功能说明:

管理由私钥和认证相关公钥的 X.509证书链组成的密钥仓库(数据库)。还管理来自可信任实体的证书。

语法:

keytool [命令 ]

补充说明:

keytool是个密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。它还允许用户储存他们的通信对等者的公钥(以证书形式)。

=======================

native2ascii

功能说明:

将含有本地编码字符(既非 Latin1又非 Unicode字符)的文件转换为 Unicode编码字符的文件。

语法:

native2ascii [options] [inputfile [outputfile]]

补充说明:

Java编译器和其它 Java工具只能处理含有 Latin-1和/或 Unicode编码(udddd记号)字符的文件。native2ascii将含有其它字符编码的文件转换成含 Latin-1和/或 Unicode编码字符的文件。若省略 outputfile,则使用标准输出设备输出。此外,如果也省略 inputfile,则使用标准输入设备输入。

命令选项

-reverse执行相反的操作:将含 Latin-1和/或 Unicode编码字符的文件转换成含本地编码字符的文件。

-encoding[encoding_name]指定转换过程使用的编码名称。缺省的编码从系统属性 file.encoding中得到。

=======================

appletviewer

功能说明:

Java applet浏览器。appletviewer命令可在脱离万维网浏览器环境的情况下运行 applet。

语法:

appletviewer [ threads flag ] [命令选项 ] urls...

补充说明:

appletviewer命令连接到 url所指向的文档或资源上,并在其自身的窗口中显示文档引用的每个 applet。注意:如果 url所指向的文档不引用任何带有 OBJECT、EMBED或 APPLET标记的 applet,那么 appletviewer就不做任何事情。

命令选项

-debug在 Java调试器 jdb中启动 appletviewer,使您可以调试文档中的 applet。

-encoding[编码名称]指定输入 HTML文件的编码名称。

-J[javaoption]将 javaoption字符串作为单个参数传给运行 appletviewer的 Java解释器。参数不能含有空格。由多重参数组成的字符串,其中的每个参数都必须以前缀-J开头,该前缀以后将被除去。这在调整编译器的执行环境或内存使用时将很有用。

=========================

extcheck

功能说明:

extcheck检测目标 jar文件与当前安装方式扩展 jar文件间的版本冲突。

语法:

extcheck [-verbose ] targetfile.jar

补充说明:

extcheck实用程序检查指定 Jar文件的标题和版本与 JDK TM软件中所安装的扩展是否有冲突。在安装某个扩展前,可以用该实用程序查看是否已安装了该扩展的相同版本或更高的版本。

extcheck实用程序将 targetfile.jar文件清单的 specification-title和 specification-version头与当前安装在扩展目录下所有 Jar文件的相对应的头进行比较(缺省扩展目录为 jre/lib/ext)。extcheck实用程序比较版本号的方式与 java.lang.Package.isCompatibleWith方法相同。若未检测到冲突,则返回代码为 0。如果扩展目录中任何一个 jar文件的清单有相同的 specification-title和相同的或更新的 specification-version号,则返回非零错误代码。如果 targetfile.jar的清单中没有 specification-title或 specification-version属性,则同样返回非零错误代码。

命令选项

-verbose对扩展目录中的 Jar文件进行检查时,列出文件。此外,还报告目标 jar文件的清单属性及所有冲突的 jar文件。

=====================

jar

功能说明:

Java归档工具

语法:

jar [命令选项 ] [manifest] destination input-file [input-files]

补充说明:

jar工具是个java应用程序,可将多个文件合并为单个JAR归档文件。jar是个多用途的存档及压缩工具,它基于ZIP和ZLIB压缩格式。然而,设计jar的主要目的是便于将java applet或应用程序打包成单个归档文件。将applet或应用程序的组件(.class文件、图像和声音)合并成单个归档文件时,可以用java代理(如浏览器)在一次HTTP事务处理过程中对它们进行下载,而不是对每个组件都要求一个新连接。这大大缩短了下载时间。jar还能压缩文件,从而进一步提高了下载速度。此外,它允许applet的作者对文件中的各个项进行签名,因而可认证其来源。jar工具的语法基本上与tar命令的语法相同。

命令选项

-c在标准输出上创建新归档或空归档。

-t在标准输出上列出内容表。

-x[file]从标准输入提取所有文件,或只提取指定的文件。如果省略了file,则提取所有文件;否则只提取指定文件。

-f第二个参数指定要处理的jar文件。在-c(创建)情形中,第二个参数指的是要创建的jar文件的名称(不是在标准输出上)。在-t(表(或-x(抽取)这两种情形中,第二个参数指定要列出或抽取的jar文件。

-v在标准错误输出设备上生成长格式的输出结果。

-m包括指定的现有清单文件中的清单信息。用法举例:“jar cmf myManifestFile myJarFile*.class”

-0只储存,不进行 ZIP压缩。

-M不创建项目的清单文件。

-u通过添加文件或更改清单来更新现有的 JAR文件。例如:“jar-uf foo.jar foo.class”将文件 foo.class添加到现有的JAR文件foo.jar中,而“jar umf manifest foo.jar”则用manifest中的信息更新foo.jar的清单。

-C在执行 jar命令期间更改目录。例如:“jar-uf foo.jar-C classes*”将classes目录内的所有文件加到foo.jar中,但不添加类目录本身。

程序示例

1:将当前目录下所有CLASS文件打包成新的JAR文件:

jar cf file.jar*.class

2:显示一个JAR文件中的文件列表

jar tf file.jar

3:将当前目录下的所有文件增加到一个已经存在的JAR文件中

jar cvf file.jar*

========================

javadoc

功能说明

Java API文档生成器从Java源文件生成API文档HTML页。

语法:

javadoc [命令选项 ] [包名 ] [源文件名 ] [@files ]

其中[包名 ]为用空格分隔的一系列包的名字,包名不允许使用通配符,如(*)。[源文件名 ]为用空格分

Java如何实现文件系统

package com.kiritor.util;

import java.io.File;

import java.io.FileFilter;

import java.util.Arrays;

import java.util.Collections;

import java.util.List;

/**

*文件的相关操作类

*

*@author Kiritor

*/

public class FileOperation{

private static String contentPath;

private static String filePath;

private static File[] fileList= null;//保存文件列表,过滤掉目录

public FileOperation(){

}

/**构造函数的参数是一个目录*/

public FileOperation(String path){

File file= new File(path);

if(file.isDirectory())

this.contentPath= path;

else

this.filePath= path;

}

/**获取文件列表*/

public static File[] getFiles(){

if(contentPath== null){

File file= new File(filePath);

fileList= new File[1];

fileList[0]= file;

return fileList;

}

fileList= new File(contentPath).listFiles(new FileFilter(){

/**使用过滤器过滤掉目录*/

@Override

public boolean accept(File pathname){

if(pathname.isDirectory())

{

return false;

}else

return true;

}

});

return fileList;

}

/**对当前目录下的所有文件进行排序*/

public static File[] sort(){

getFiles();

Arrays.sort(fileList, new FileComparator());

return fileList;

}

public static void tree(File f, int level){

String preStr="";

for(int i=0; i<level; i++){

preStr+="";

}

File[] childs= f.listFiles();

//返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。

for(int i=0; i<childs.length; i++){

System.out.println(preStr+ childs[i].getName());

if(childs[i].isDirectory()){

tree(childs[i], level+ 1);

}

}

}

//提供一个"比较器"

static class FileComparator implements java.util.Comparator<File>{

@Override

public int compare(File o1, File o2){

//按照文件名的字典顺序进行比较

return o1.getName().compareTo(o2.getName());

}

}

}

OK,关于java安装时什么为空文件系统和Java安装后JDK/bin目录下的许多exe文件有什么用途。的内容到此结束了,希望对大家有所帮助。

java复数类有什么方法(java 中实现复数的加减)半真半假猜一个字(半真半假猜字谜打一个字)