2013-10-18 62 views
0

我想在linux上啓動jstatd。這是我做的。爲什麼jstatd沒有迴應?

1)創建文件jstatd.all.policy

grant codebase "file:/home/ailiu/jdk1.6.0_24/lib/tools.jar" { 
    permission java.security.AllPermission; 
}; 

2)確信的tools.jar存在於特定路徑 /home/ailiu/jdk1.6.0_24/lib/tools.jar

3)運行jstatd作爲

./jstatd -J-Djava.security.policy=jstatd.all.policy 

執行簡單地掛起,根本沒有迴應。

我試過用JDK 1.7和1.6,都一樣。

4)jps可以看到jstatd的進程,以及其他java程序。

有幫助嗎?非常感謝。

+0

嘗試運行jstatd作爲'./jstatd -J-Djava.security.policy = jstatd.all.policy&' – simon

回答

0

jstatd正是它應該做的:它是一個守護程序,旨在在後臺運行。它將運行等待網絡請求直至死亡。你期望什麼?

jps可以顯示沒有jstatd的本地java進程。您可以嘗試jstatd是否使用jps hostname運行,其中主機名不應爲localhost,即它應該是運行jstatd的計算機的網絡可見名稱。

+0

感謝您的回覆,Holger。然而,從另一個問題的線索,它說,「輸出將如下所示: - [1] 12195」。如果沒有輸出(如我所見),那麼如何判斷哪個端口用於RMI註冊表? – user2620021

+0

如果您未指定您擁有的端口,則將使用標準端口。你不必關心它,因爲如果你沒有指定你自己的,所有的工具都會使用這個標準的端口。但爲了完整性:默認端口號是'1099' – Holger

+0

再次感謝Holger。但是,我嘗試使用默認端口1099的jstat,這不起作用。而且,我仍然期望jstatd返回一個端口號,即使它是默認號碼。它不應該掛在那裏。 Deamon程序可以在後臺運行,但不需要掛起。對? – user2620021