HttpServer不是API的VSCode Java访问限制错误

Jon*_*Jon 6 java visual-studio-code

v1.18.0具有Redhat的Java语言支持的VSCode中,v0.14.0由于使用了com.sun.net.httpserver.*如下所示的类,我在编辑器中收到错误通知

在此处输入图片说明

当我调整扩展创建的.classpath文件时,所有红色弯曲都消失了

...
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8/">
  <accessrules>
    <accessrule kind="accessible" pattern="com/sun/net/**"/>
  </accessrules>
</classpathentry>
...
Run Code Online (Sandbox Code Playgroud)

问题在于,.classpath每当VSCode重新启动时,该文件似乎都将被覆盖。

更新:既不jdeps也不jdeprscan抱怨编译罐子

$ jdeps --version
9.0.1

$ jdeprscan --version
9.0.1

$ jdeps --jdk-internals ContactService-0.5.0.jar 

$ jdeprscan ContactService-0.5.0.jar
Jar file ContactService-0.5.0.jar:
Run Code Online (Sandbox Code Playgroud)

有没有办法(例如,扩展名的魔术参数java.jdt.ls.vmargs?)使这些编辑器错误通知永久消失?

小智 0

我的 VS Code 不会重置 .classpath 文件。可能是你的版本?

我在用着:

Version: 1.39.2 (user setup)
Commit: 6ab598523be7a800d7f3eb4d92d7ab9a66069390
Date: 2019-10-15T15:35:18.241Z
Electron: 4.2.10
Chrome: 69.0.3497.128
Node.js: 10.11.0
V8: 6.9.427.31-electron.0
OS: Windows_NT x64 10.0.16299
Run Code Online (Sandbox Code Playgroud)

如果您使用 gradle,您可以按照此处的建议进行操作: https: //github.com/redhat-developer/vscode-java/issues/120#issuecomment-450530640

import org.gradle.plugins.ide.eclipse.model.AccessRule

apply plugin: 'java'
apply plugin: 'eclipse'

eclipse {
    classpath {
        file {
            whenMerged {
                def jre = entries.find { it.path.contains 'org.eclipse.jdt.launching.JRE_CONTAINER' }
                jre.accessRules.add(new AccessRule('0', 'javafx/**'))
                jre.accessRules.add(new AccessRule('0', 'com/sun/javafx/**'))
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

只需根据您的需求进行更改即可