相关疑难解决方法(0)

如何将Java 9'--permit-illegal-access'标志传递给Webstart应用程序?

通过将--permit-illegal-access标志传递给VM,我使用JRE build 9-ea + 163运行我的应用程序.现在我想用Java Webstart启动应用程序.第一次尝试

javaws -J--permit-illegal-access <JNLP-Url>
Run Code Online (Sandbox Code Playgroud)

不起作用.我得到同样InaccessibleObjectExceptionmodule java.base does not "opens java.util" to unnamed module因为没有国旗.

添加<j2se java-vm-args="--permit-illegal-access" version="9*"/>到JNLP没有帮助.

Webstart支持--permit-illegal-access旗帜吗?

我还可以在JNLP文件中指定标志吗?

顺便说一句,Java 9

javaws https://docs.oracle.com/javase/tutorialJWS/samples/deployment/NotepadJWSProject/Notepad.jnlp
Run Code Online (Sandbox Code Playgroud)

投掷IllegalAccessException,-J--permit-illegal-access也没有帮助.

PS:将env变量设置JAVA_TOOL_OPTIONS--permit-illegal-access有效,但由于无法访问客户端,因此不是解决方案.

java jnlp java-web-start java-9

8
推荐指数
1
解决办法
3320
查看次数

我如何获得jjs --add-opens在Java9中工作?

我一直在使用https://apimeister.com/2015/06/27/add-jar-to-the-classpath-at-runtime-in-jjs.html中的反射技术来在运行时在Java的nashorn jjs中加载类。

它在Java 8中有效,但在Java 9中则无效。我知道/sf/answers/2888568721/中提到的推荐命令行解决方法

并且根据/sf/answers/3217961981/,使用=代替标志和其args之间的空格的这种替代语法似乎也应该是有效的(由于通过nashorn方法将jvm args通过通过jjs-J--...

有什么提示吗?


这有效...(java 8)...

$ wget -q http://central.maven.org/maven2/org/apache/poi/poi/4.0.0/poi-4.0.0.jar
$ /usr/lib/jvm/java-1.8.0/bin/jjs -scripting loadit.js -- poi-4.0.0.jar
DONE
Run Code Online (Sandbox Code Playgroud)

这不是...(java 9)...

$ wget -q http://central.maven.org/maven2/org/apache/poi/poi/4.0.0/poi-4.0.0.jar
$ /usr/lib/jvm/java-9/bin/jjs -J--add-opens=java.base/java.net=ALL-UNNAMED -scripting loadit.js -- poi-4.0.0.jar

Exception in thread "main" java.lang.reflect.InaccessibleObjectException: Unable to make protected void java.net.URLClassLoader.addURL(java.net.URL) accessible: module java.base does not "opens java.net" to module jdk.scripting.nashorn.scripts
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:337)...
Run Code Online (Sandbox Code Playgroud)

这是loadit.js ...

// loadit.js 
function addUrlToClasspath(pth) {
  var s = java.lang.ClassLoader.getSystemClassLoader();
  var C = Java.type("java.lang.Class[]");
  var …
Run Code Online (Sandbox Code Playgroud)

java reflection java-9 jjs

5
推荐指数
1
解决办法
459
查看次数

标签 统计

java ×2

java-9 ×2

java-web-start ×1

jjs ×1

jnlp ×1

reflection ×1