首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >checkSystemClipboardAccess替代JDK11

checkSystemClipboardAccess替代JDK11
EN

Stack Overflow用户
提问于 2020-01-31 22:30:14
回答 2查看 485关注 0票数 4

JDK11已经将checkSystemClipboardAccessSecurityManager中删除。在剪贴板处理中,建议的替代成语是什么?

我想像这样检查剪贴板的可用性:

代码语言:javascript
复制
public static boolean hasClipboard() {
    SecurityManager sm = System.getSecurityManager();
    if (sm == null) return true;
    try {
        sm.checkSystemClipboardAccess();
        return true;
    } catch (SecurityException x) {
        /* */
    }
    return false;
}

但是不可能在JDK11中编译它。

编辑01.02.2020:

根据我现在使用的建议:

代码语言:javascript
复制
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;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-01 05:36:07

对于删除的java checkSystemClipboardAccess术语的Google搜索提供了一个指向Oracle SecurityManager (JDK 10)的链接,方法checkSystemClipboardAccess()的文档包含以下内容:

不建议删除:这个API元素在将来的版本中会被删除。此方法最初用于检查调用线程是否可以访问系统剪贴板。该方法已经过时,代码应该使用checkPermission(java.security.Permission)检查AWTPermission("accessClipboard")。此方法将在未来版本的Java中被删除。

票数 2
EN

Stack Overflow用户

发布于 2020-02-01 04:44:38

一个快速的解决方法是简单地将对sm.checkSystemClipboardAccess();的调用替换为对sm.checkPermission(new java.awt.AWTPermission("accessClipboard"));的调用。

参见Oracle的JDK8Technote Java开发工具包(JDK)中的权限,它显式地解决了checkSystemClipboardAccess()的弃用问题。

方法 public void checkSystemClipboardAccess();注意:这个方法是不推荐的;使用公共void checkPermission(权限烫发); 权限 java.awt.AWTPermission "accessClipboard";

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60012105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档