2009-08-24 38 views

回答

1

是的,一旦您通過JNI調用本機代碼,它可以執行幾乎所有當前用戶都可以執行的操作。刪除所有文件。 Java系統不能監控本地代碼所做的任何事情。

你不要使用任何東西的JNI - 它通常用於例如低級訪問(例如對可移動驅動器的嚴重錯誤處理)或訪問不具有純Java等效的C API。

+0

這是安全地可以voilate安全,你知道,可以使用java secirity禁用用戶代碼的JNI? – 2015-01-17 12:09:18

4

Java的安全策略根本不適用於通過JNI調用的本地代碼,所以很顯然,本機代碼可以隨意違反它們。

至於我們用什麼JNI,現在主要是調用操作系統特定的API或與現有的非Java代碼的接口。提高性能曾經是一個經常被引用的原因,但考慮到今天的虛擬機和JIT編譯器的狀態,這幾乎沒有任何意義。