我的目标是向STDOUT列出在Linux服务器上由java执行的类文件和.jar文件。我可以做一些getopts的东西来获得参数-jar,但其他进程标识为从Linux的ps输出中确定运行的类和jar's
ps -ef | grep java或ps -eo args | grep java
可能正在执行一个类文件,例如, java -classpath/a/b/c myclass A1 A2。我担心的是,我正在寻找一个不合理的解决方案,这个解决方案充满了greps和awk的冗长管道来解决应该(我认为)一个简单的查询。鉴于:
一些调用来只是“的Java”和其他人对Java的完全合格的路径名,
各种不同(或没有)Java选项可以在命令设置线运行的进程,
一些过程调用.jar文件,一些通话.class文件,并
可能会有参数传递给类,
什么是让运行Java可执行文件,比如一个简单的列表的最佳方式:
abc.jar
mymainclass
xyz.jar
numainclass
我认为这可能不是一个不常见的问题,但我似乎无法建立一个搜索字符串来查找以前的任何讨论。一个优雅的解决方案会很好,现在我正在寻找grep'-jar'条目到getops调用,并且考虑所有可能的组合来解析剩余的条目。我正在使用bash 3.x解决方案。
谢谢!
您可以使用JDK附带的JVisualVM [http://visualvm.java.net/description.html](http://visualvm.java.net/description.html)。但是,您需要在您的应用程序中设置JMX支持,请参阅给定链接中的“在目标VM中启用JMX访问”部分 – ecle