Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.IllegalArgumentException:不允许空白_Java_Applet_Illegalargumentexception - Fatal编程技术网

java.lang.IllegalArgumentException:不允许空白

java.lang.IllegalArgumentException:不允许空白,java,applet,illegalargumentexception,Java,Applet,Illegalargumentexception,我正在尝试在网页上嵌入小程序。我已经将代码导出为IntelliJ中的压缩小程序。现在,当我尝试运行它时,我得到以下堆栈跟踪: java.lang.IllegalArgumentException: white space not allowed at java.net.URLPermission.normalizeHeaders(URLPermission.java:401) at java.net.URLPermission.init(URLPermission.java:18

我正在尝试在网页上嵌入小程序。我已经将代码导出为IntelliJ中的压缩小程序。现在,当我尝试运行它时,我得到以下堆栈跟踪:

java.lang.IllegalArgumentException: white space not allowed
    at java.net.URLPermission.normalizeHeaders(URLPermission.java:401)
    at java.net.URLPermission.init(URLPermission.java:189)
    at java.net.URLPermission.<init>(URLPermission.java:166)
    at sun.net.www.protocol.http.HttpURLConnection.URLtoSocketPermission(HttpURLConnection.java:1031)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1424)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
    at com.sun.deploy.net.HttpUtils.followRedirects(Unknown Source)
    at com.sun.deploy.net.BasicHttpRequest.doRequest(Unknown Source)
    at com.sun.deploy.net.BasicHttpRequest.doGetRequestEX(Unknown Source)
    at com.sun.deploy.cache.ResourceProviderImpl.checkUpdateAvailable(Unknown Source)
    at com.sun.deploy.cache.ResourceProviderImpl.isUpdateAvailable(Unknown Source)
    at com.sun.deploy.cache.DeployCacheHandler.get(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1048)
    at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:987)
    at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:985)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessController.doPrivileged(AccessController.java:713)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:984)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)
    at sun.net.www.protocol.http.HttpURLConnection.followRedirect0(HttpURLConnection.java:2648)
    at sun.net.www.protocol.http.HttpURLConnection.access$300(HttpURLConnection.java:90)
    at sun.net.www.protocol.http.HttpURLConnection$12.run(HttpURLConnection.java:2565)
    at sun.net.www.protocol.http.HttpURLConnection$12.run(HttpURLConnection.java:2563)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessController.doPrivileged(AccessController.java:713)
    at sun.net.www.protocol.http.HttpURLConnection.followRedirect(HttpURLConnection.java:2562)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1768)
    at sun.net.www.protocol.http.HttpURLConnection.access$200(HttpURLConnection.java:90)
    at sun.net.www.protocol.http.HttpURLConnection$9.run(HttpURLConnection.java:1431)
    at sun.net.www.protocol.http.HttpURLConnection$9.run(HttpURLConnection.java:1429)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessController.doPrivileged(AccessController.java:713)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1428)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
    at sun.plugin.PluginURLJarFileCallBack.downloadJAR(Unknown Source)
    at sun.plugin.PluginURLJarFileCallBack.access$000(Unknown Source)
    at sun.plugin.PluginURLJarFileCallBack$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.plugin.PluginURLJarFileCallBack.retrieve(Unknown Source)
    at sun.net.www.protocol.jar.URLJarFile.retrieve(URLJarFile.java:205)
    at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:71)
    at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:99)
    at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:122)
    at sun.plugin.net.protocol.jar.CachedJarURLConnection.connect(Unknown Source)
    at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFileInternal(Unknown Source)
    at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFile(Unknown Source)
    at com.sun.deploy.security.DeployURLClassPath$JarLoader.getJarFile(Unknown Source)
    at com.sun.deploy.security.DeployURLClassPath$JarLoader.access$1000(Unknown Source)
    at com.sun.deploy.security.DeployURLClassPath$JarLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.deploy.security.DeployURLClassPath$JarLoader.ensureOpen(Unknown Source)
    at com.sun.deploy.security.DeployURLClassPath$JarLoader.<init>(Unknown Source)
    at com.sun.deploy.security.DeployURLClassPath$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source)
    at com.sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source)
    at com.sun.deploy.security.DeployURLClassPath.getResource(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager.initAppletAdapter(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:744)
Ignored exception: java.lang.IllegalArgumentException: white space not allowed
作为参考,以下是我在HTML中使用的标记:


谢谢

这些调用中的一个(或您的主调用)似乎导致加载一个URL(看起来像是一个jar文件),然后有一个重定向,在其中一个响应HTTP头名称中有一个空格或制表符。如果将小程序jar/war托管在本地Web服务器而不是Github上,会发生什么情况?

如果您使用的是Java 8,那么这一行为似乎有一个公开的bug:

本质上,这个bug是Java中的一个核心bug,您所能做的任何事情都无法修复它。因此,您必须等待Java 8u40(如果修复程序确实达到了其目标版本)。

我遇到了类似的问题(从Java 1.7.0_67升级到Java 1.8.0_25),打开了一个重定向到pdf文档的页面,代码如下:

InputStream in = new URL(myUrl).openConnection().getInputStream();
我为那些迫不及待明年1月(或4月?)推出java 8u40的人找到了一个可能的(希望是暂时的)解决方案:

try {
    InputStream in = new URL(myUrl).openConnection().getInputStream();
} catch (IllegalArgumentException iae) {
    in = sun.net.www.protocol.http.HttpURLConnection.openConnectionCheckRedirects(new URL(myUrl).openConnection());
}
显然,您可以添加日志并检查打开的连接是否为HttpURLConnection的istanceof


如果你认为我所做的是非常错误的,我愿意接受你的建议(考虑我已经去掉了不必要的部分)。

运行Windows 7时,我在JRE 8u25和8u40上遇到了这个问题。我返回到7u71,上传器工作正常。希望这有帮助。

您不能使用空格吗?空格在哪里?我不知道你的意思。在你的
getImage
参数中,文件路径中是否有空格,如果有,你能更改文件名吗?只需在导出的二进制文件上运行
jar-tf
,列出所有文件,并且其中没有任何文件有空格。那么
main.getCodeBase()函数返回的字符串呢?你确定是这个例外导致了问题而不是另一个吗?我们有同样的问题;它可能是由一个已签名的小程序触发的(这些天他们都应该是这样的)。
try {
    InputStream in = new URL(myUrl).openConnection().getInputStream();
} catch (IllegalArgumentException iae) {
    in = sun.net.www.protocol.http.HttpURLConnection.openConnectionCheckRedirects(new URL(myUrl).openConnection());
}