[英]checkSystemClipboardAccess alternative for JDK11
JDK11 已從SecurityManager
刪除checkSystemClipboardAccess
。 剪貼板處理中建議的替代習語是什么?
我想像這樣檢查剪貼板的可用性:
public static boolean hasClipboard() {
SecurityManager sm = System.getSecurityManager();
if (sm == null) return true;
try {
sm.checkSystemClipboardAccess();
return true;
} catch (SecurityException x) {
/* */
}
return false;
}
但是在JDK11中編譯它是不可能的。
2020 年 2 月 1 日編輯:
根據我現在使用的建議:
public static boolean hasClipboard() {
SecurityManager sm = System.getSecurityManager();
if (sm == null) return true;
try {
sm.checkPermission(new AWTPermission("accessClipboard"));
return true;
} catch (SecurityException x) {
/* */
}
return false;
}
一個快速的解決方法是簡單地替換你對sm.checkSystemClipboardAccess();
調用sm.checkSystemClipboardAccess();
調用sm.checkPermission(new java.awt.AWTPermission("accessClipboard"));
.
請參閱Java 開發工具包 (JDK)中 Oracle 的 JDK 8 技術說明權限,其中明確解決了棄用checkSystemClipboardAccess()
:
方法
public void checkSystemClipboardAccess(); 注意:此方法已棄用; 改用 public void checkPermission(Permission perm);
允許
java.awt.AWTPermission "accessClipboard";
[Google] 搜索術語java checkSystemClipboardAccess 已刪除,提供了指向 Oracle 的SecurityManager
類(JDK 10)的javadoc的鏈接,方法checkSystemClipboardAccess()的文檔包含以下內容:
已棄用,需要移除:此 API 元素可能會在未來版本中移除。 該方法最初用於檢查調用線程是否可以訪問系統剪貼板。 該方法已過時,代碼應改為使用 checkPermission(java.security.Permission) 來檢查 AWTPermission("accessClipboard")。 此方法可能會在 Java SE 的未來版本中刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.