JDK/bin目录下各种工具的使用说明

Java工具大全
本文列举了多种Java相关的工具和命令,包括编译、调试、运行、性能监控等方面的应用程序,如java、javac、jdb、jconsole等,适用于Java开发者的日常开发与维护工作。

 

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

  2. apt.exe:SolarisTM 操作系统和 Linux上用于处理注释的工具

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

  4. HtmlConverter.exe:Java(TM) 插件 HTML 转换器是一种实用程序,可用于将任一包含小程序的 HTML 页面,转换为使用 Java(TM)插件的格式。

  5. idlj.exe:对idl文件进行解析,生成所需的java文件

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

  7. jarsigner:为 Java 归档 (JAR) 文件产生签名,并校验已签名的 JAR 文件的签名

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

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

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

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

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

  13. java-rmi:

  14. javaw:与java类似,没有控制台信息

  15. javaws:用于启动和控制Web上的java是程序

  16. JConsole:是一个基于JMX的GUI工具,用于连接正在运行的JVM,不过此JVM需要使用可管理的模式启动。

  17. jdb:用于调试java程序的工具

  18. jhat:是一个Java堆复制浏览器。这个工具分析Java堆复制文件(例如,由上面的"jmap -dump"所产生的)。Jhat启动一个允许堆中的对象在web浏览器中进行分析的web服务器。这个工具并不是想用于应用系统中而是用于"离线"分 析。"jhat工具是平台独立的",其意思是,它可以被用来观察在任何平台上所产生的堆复制。例如,我们有可能在Linux系统上使用jhat来观察一个 在Solaris OS上所产生的堆复制。

  19. jinfo:打印一个给定的Java进程或核心文件或一个远程调试服务器的Java配置信息。配置信息包括Java系统属性和JVM命令行标志

  20. jps:相当于Solaris进程工具ps。不象"pgrep java"或"ps -ef grep java",jps并不使用应用程序名来查找JVM实例。因此,它查找所有的Java应用程序,包括即使没有使用java执行体的那种(例如,定制的启动 器)。另外,jps仅查找当前用户的Java进程,而不是当前系统中的所有进程。

  21. jrunscript:一个JS解释器

  22. jstack:等价于Solaris的pstack工具。jstack打印所有的Java线程的堆栈跟踪信息(可选地包括本机帧信息)

  23. jstat :显示一个测量(instrumented)Java HotSpot虚拟机的性能统计信息

  24. jstatd是一个Java远程方法调用 (RMI)服务器应用程序-它监控测量Java HotSpot虚拟机的创建和终止并且提供一个接口来允许远程监控工具依附到运行于本地主机的JVM

  25. Keytool:是安全钥匙与证书的管理工具,它管理一个存储了私有钥匙和验证相应公共钥匙的与它们相关联的X.509 证书链的keystore

  26. kint,klist,ktab:实现Kerberos用到的一些工具

  27. native2ascii:用于转换字符或者文件的编码格式

  28. orbd:用于实现corba接口(分布式应用)

  29. pack200:对jar文件进行高效的压缩

  30. packager: 将Jar文件包装成其他格式的文件

  31. policytool:java中的策略管理

  32. rmic:为远程调用编译生成远程调用时所需的文件

  33. rmid:用于启动激活系统守护进程,以便远程对象可以在JVM中注册和激活

  34. rmiregistry:启动一个远程对象注册表中指定的端口

  35. schemagen:

  36. serialver:用于返回一个类的serialverUID

  37. servertools:为程序员提供了一个命令行接口,用于注册,取消注册,启动,关闭一个服务

  38. tnameserv:

  39. unpack200:对pack200进行压缩的jar文件进行解压

  40. wsgen:是一个命令行功能用来生成合适的JAX-WS。它读取WebService的终端类文件,同时生成所有用于WebService发布的源代码文件和经过编译过的二进制类文件。它还随意生成WSDL和符合规范的HelloServer类WebService。wsgen从资源文件生成一个完整的操作列表是合法的。

  41. wsimport:这个工具依据wsdl文件生成相应的类文件,然后用这些类文件,就可以像调用本地的类一样调用WebService提供的方法了

  42. xjc:

<think> 我们正在解决错误:`'/usr/bin/which: no gcc in (/home/bi/java/jdk1.8.0_271/bin:/home/bi/java/jdk1.8.0_162/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)'` 这个错误意味着在执行`which gcc`命令时,系统在指定的路径列表中没有找到`gcc`程序。路径列表是: /home/bi/java/jdk1.8.0_271/bin /home/bi/java/jdk1.8.0_162/bin /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /root/bin 解决思路: 1. 确认系统是否已安装gcc。 2. 如果已安装,确认gcc所在的路径是否在环境变量PATH中。 3. 如果不在,将gcc所在路径添加到PATH中;或者安装gcc(如果未安装)。 步骤: 步骤1:检查gcc是否安装 在终端中执行以下命令: gcc --version 如果显示gcc版本信息,则表示已安装,但可能不在当前PATH指定的路径中。如果未安装,则会提示命令未找到。 步骤2:查找gcc的安装位置 如果步骤1中显示了版本信息,说明gcc在当前的某个PATH路径下(但奇怪的是错误提示找不到,可能是执行环境不同?)。或者我们可以使用`which`命令来定位: which gcc 但是当前错误就是which命令报出的,所以我们换一种方式,使用`find`或`locate`命令来查找gcc。 例如,使用find命令在整个文件系统中搜索(可能需要root权限): sudo find / -name gcc 2>/dev/null 或者使用更快的locate(如果系统安装了mlocate): sudo updatedb # 首先更新数据库(如果很久没更新) locate gcc | grep '/gcc$' 步骤3:将gcc所在目录添加到PATH 假设我们找到gcc位于`/usr/bin/gcc`(这是常见位置),那么我们可以检查PATH环境变量是否包含`/usr/bin`。从错误信息中我们可以看到PATH已经包含`/usr/bin`,所以按理说应该能找到。 如果确实在`/usr/bin`下有gcc,那么可能是因为: - 当前用户的环境变量PATH被修改,可能覆盖了系统默认的PATH。 - 在执行命令时(可能是某个脚本)设置了一个新的PATH,而这个PATH没有包含`/usr/bin`。 观察错误中的PATH,我们发现它包含了`/usr/bin`,所以如果`/usr/bin/gcc`存在,那么应该能找到。因此,可能的原因是: a) gcc没有安装在`/usr/bin`下,而是安装在其他地方,而这个地方不在PATH中。 b) gcc没有安装。 步骤4:安装gcc(如果未安装) 如果未安装gcc,我们需要安装它。根据操作系统不同,安装命令也不同。 对于CentOS/RHEL系统: sudo yum install gcc 对于Debian/Ubuntu系统: sudo apt-get install gcc 步骤5:调整环境变量(如果gcc不在PATH中) 如果gcc安装在非标准目录,例如`/opt/gcc/bin`,那么我们需要将这个路径添加到PATH环境变量中。 临时添加(只对当前shell有效): export PATH=$PATH:/path/to/gcc/dir 永久添加(对于当前用户): echo 'export PATH=$PATH:/path/to/gcc/dir' >> ~/.bashrc source ~/.bashrc 但是注意:错误信息中的PATH已经包含了一些标准路径,如`/usr/bin`,所以通常gcc应该在这些路径下。 步骤6:检查脚本中的PATH设置 如果这个错误是在运行某个脚本时出现的,那么可能是该脚本修改了PATH环境变量。检查脚本中是否有修改PATH的语句,是否不小心覆盖了PATH或者删除了某些路径。 根据引用[2]和[5]的内容,我们看到之前有关于JAVA_HOME环境变量配置的问题,所以当前错误可能是由于某个脚本修改了PATH,只包含了JDK的路径和少数系统路径,而遗漏了包含gcc的路径(如`/usr/bin`)。 因此,我们需要检查启动脚本(比如启动某个应用时调用的脚本)是否重置了PATH。如果是,那么应该在脚本中修改PATH,将其设置为包含系统路径和JDK路径以及gcc路径。 例如,在脚本中设置PATH时,不要覆盖原有的PATH,而是追加: export PATH=$PATH:/home/bi/java/jdk1.8.0_271/bin # 追加JDK路径 # 或者,如果脚本需要重置PATH,那么应该包含系统默认路径和JDK路径 # 可以这样:export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/home/bi/java/jdk1.8.0_271/bin 建议:在脚本中设置PATH时,最好先保留原来的PATH,然后附加需要的路径。 总结解决方案: 1. 首先确认gcc是否安装。如果没有安装,则安装gcc。 2. 如果已安装,找到gcc的路径,并确保该路径在环境变量PATH中。 3. 检查导致该错误的脚本(如果有),确保它没有错误地修改PATH。 由于用户之前配置了多个JDK路径(从PATH中可以看到两个JDK路径),并且可能是在运行某个需要编译的Java程序(比如使用了JNI)时出现该错误,因此需要gcc。 执行以下命令: sudo yum install gcc # 如果是CentOS/RHEL系统 或 sudo apt-get install gcc # 如果是Debian/Ubuntu系统 安装完成后,再次运行命令,应该就不会出现找不到gcc的错误了。 如果问题仍然存在,请检查gcc是否被安装到非标准目录,并确保该目录在PATH中。 另外,注意错误信息中PATH包含了两个JDKbin目录,这可能是用户自己添加的,但是覆盖了系统PATH?我们需要检查用户的环境变量设置文件(如~/.bashrc, ~/.bash_profile等)中PATH的设置。 在用户的shell配置文件中,应该这样设置PATH: export PATH=$PATH:/path/to/new/dir1:/path/to/new/dir2 而不是: export PATH=/path/to/new/dir1:/path/to/new/dir2 # 这样会覆盖原有的PATH 检查配置,确保没有覆盖PATH。 由于用户之前有多个JDK,建议只保留一个JDK在PATH中,避免混乱。 最后,重新加载配置文件: source ~/.bashrc # 或 source ~/.bash_profile 然后再次尝试。 </think> 要解决`/usr/bin/which: no gcc in ...`错误(在指定路径中找不到gcc),请按以下步骤操作: ### 解决方法 1. **检查gcc是否安装** 执行命令: ```bash gcc --version || echo "GCC not installed" ``` 若显示版本信息(如`gcc (GCC) 4.8.5 20150623`)表示已安装;若提示未找到则需要安装。 2. **安装GCC开发工具链** 根据系统选择安装命令: ```bash # CentOS/RHEL sudo yum groupinstall "Development Tools" # Ubuntu/Debian sudo apt-get install build-essential ``` 3. **验证安装路径** 安装后查找gcc位置: ```bash which gcc # 通常输出 /usr/bin/gcc ls -l /usr/bin/gcc ``` 4. **修复PATH环境变量** 在配置文件(`~/.bashrc`或`~/.bash_profile`)中**追加**系统路径: ```bash echo 'export PATH=$PATH:/usr/bin' >> ~/.bashrc source ~/.bashrc ``` **重要**:使用`$PATH:`追加路径,避免覆盖原有路径(如JDK路径)[^2][^5]。 5. **检查JDK配置冲突** 确保JDK配置未覆盖系统路径(对比修复前后): ```bash echo $PATH # 修复前 # 正确PATH应包含: /usr/bin:/home/bi/java/jdk1.8.x/bin:... echo $PATH # 修复后 ``` --- ### 原因分析 1. **缺少GCC安装** 路径中无`/usr/bin/gcc`表明开发工具链未安装[^2]。 2. **PATH配置错误** - 用户PATH中两个JDK路径(`/home/bi/java/jdk1.8.0_271/bin`和`jdk1.8.0_162/bin`)**覆盖**了系统路径 - `/usr/bin`被排除在搜索路径外[^5]。 3. **环境变量覆盖** 类似Java环境配置错误(如引用[3][5]中`JAVA_HOME`设置问题),PATH被重置导致系统工具丢失。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值