2014-09-29 61 views
-2

我使用System.getProperty(「user.name」)來獲取localuser的名稱。它工作正常,現在我的課程需要在服務器上工作。服務器上的System.getProperty()

不幸的是,System.getProperty(「user.name」)嘗試捕獲服務器的用戶名並返回「root」。

是否有可能使用System.getProperty()我得到在服務器上運行類的localuser的名稱?如果沒有,有什麼辦法嗎?

+8

顯然,由於某些瘋狂的原因,服務器* *以root身份運行。 – chrylis 2014-09-29 18:48:47

+2

您已經有了,它在UNIX系統上作爲超級用戶(例如Administrator)的'root'運行。 – 2014-09-29 18:49:15

+0

但是,當我在我的電腦上運行,作爲本地用戶,它返回例如「Fillipe」,而不是「根」。 – 2014-09-29 18:51:14

回答

1

System.getProperty("user.name")返回運行java進程的用戶帳戶名。正如您在本地計算機上所提到的,您正在用戶「Filiipe」上運行它,但是在您以root用戶身份運行它的服務器上運行它。也許你正在使用作爲系統服務自動啓動的tomcat/jboss,那種服務是在root用戶下運行的。

您也可以在linux上使用ps -ef命令輕鬆檢查它 - 第一列是啓動服務的用戶。

您也可以嘗試通過向服務器啓動腳本-Duser.name=Fellipe添加其他選項來覆蓋此參數。我沒有嘗試它,但它可能工作。