如何查找一个java运行进程的命令?

时间:2015-09-08 03:33:38

标签: java

我想知道它是如何开始的。启动此java进程的命令是什么?我的意思是我有一个正在运行的java进程,并且我想知道启动它的命令,例如什么是主类,什么是参数等。
有什么工具吗?感谢

3 个答案:

答案 0 :(得分:3)

JDK附带了一个命令行工具: jps ,它将为您提供执行命令时正在运行的java进程的列表,给出方法的参数< strong> main 以及用于JVM的参数。试试这个:

...    
using (var db = new MyDbContext())
        {
            alt = db.AddressLineTypes.Single(x => x.Value == "TypeValue");


            al.AddressLineTypes.Add(alt);
            r.AddressLines.Add(al);

            SaveRecord(r, db);
        }
    }

public void SaveRecord(Record r, MyDbContext db)
{
        db.Records.Add(r);
        db.SaveChanges();
}

它不会给你用于启动过程的确切命令,但它会给你一个如何重建&#34;&#34;那个命令。

有关详细信息,如果您使用的是体面的Linux发行版,请尝试使用path\to\jdk\bin\jps -m -l -v ,或者如果您使用的是Windows,请参阅Oracle documentation about jps

答案 1 :(得分:1)

你的问题不清楚。如果您要查找启动进程的命令,则可以查看属性sun.java.command。这将为您提供传递给它的主类名和参数。 java.class.path属性为您提供类路径。您可以使用ManagementFactory.getRuntimeMXBean().getInputArguments()方法获取传递给java命令本身的参数。使用所有这些,你应该能够重建java命令。

答案 2 :(得分:0)

如果您使用Windows,则可以使用Taskmanager,转到Process / Details选项卡,您可以在其中查看每个Process的PID。在那里,您可以为命令行添加一列(例如,在德语中使用&#34; Befehlszeile&#34;,我不确定该列是如何用英语标记的)。 然后只看一下java.exe / javaw.exe进程。

您也可以使用Microsoft的替代Taskmanager,Process Explorer,在那里您只需点击进程并选择详细信息即可。