2012-12-28 165 views
2
java.lang.reflect.Field field = ClassLoader.class.getDeclaredField("usr_paths"); 
field.setAccessible(true); 
String[] paths = (String[])field.get(null); 

當使用Tomcat時,我可以得到'java.library.path'。但是,當使用IBM WebSphere時,不起作用。 指定的財產是錯誤的?

地址:如何獲得「usr_paths」字段?

ClassLoader.class.getDeclaredFields(); 

我找不到 「usr_paths」。

+0

你有什麼異常/錯誤?或者它只是不返回任何東西?還有你應該擔心的任何安全問題? – acostache

+0

我認爲您可能會遇到由於Tomcat與WebSphere JVM交互(和/或安全問題:您的服務器可能沒有足夠的權限或類似訪問JVM的問題)而產生的問題 – acostache

+0

此外,正如此鏈接中所述(http://nicklothian.com/blog/2008/11/19/modify-javalibrarypath-at-runtime/)以及此代碼在搜索時顯示的其他相關位置,這可能無法在所有平臺上移植 – acostache

回答

1

正如我在評論中指出的那樣,此問題可能是兩個(或更多)可能原因之一(或其組合)的結果: - 您遇到與WebSphere 有關的安全/權限問題 - 寫作可能不是真正的便攜式的所有平臺上,JVMs

我會建議查看這些可能的方向。

希望這會有所幫助。