简体   繁体   English

小程序在哪里尝试从中加载类?

[英]Where is an applet trying to load a class from?

I'm trying to debug an applet that occasionally fails with the stack trace below (on the Java Console). 我正在尝试调试一个有时由于下面的堆栈跟踪而失败的小程序(在Java控制台上)。

It looks like it's trying to load binaries and it's getting an HTTP REDIRECT which isn't legal (perhaps because of the applet sandbox?). 看起来它正在尝试加载二进制文件,并且正在获取不合法的HTTP REDIRECT(可能是由于applet沙箱?)。

Is there any way to turn on verbose class loading output (or other debugging that might be useful) on the Java Console? 有没有办法在Java控制台上打开详细的类加载输出(或其他可能有用的调试)? If this were a standard Java application (as opposed to an applet), I would put "-verbose:class" on the command line and see what I get - but I don't know how to do that with an applet. 如果这是标准的Java应用程序(而不是applet),我将在命令行上输入“ -verbose:class”,然后看得到的内容-但我不知道如何使用applet来实现。

I don't have access to the source for the applet - so I can't add any kind of instrumentation to the code itself. 我无权访问该applet的源-因此,我无法在代码本身中添加任何种类的工具。

java.lang.SecurityException: illegal URL redirect 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.net.DownloadEngine.isUpdateAvailable(Unknown Source) at com.sun.deploy.cache.DeployCacheHandler.get(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at sun.plugin.PluginURLJarFileCallBack.downloadJAR(Unknown Source) at sun.plugin.PluginURLJarFileCallBack.access$000(Unknown Source) at sun.plugin.PluginURLJarFileCallBack$2.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(Unknown Source) at sun.n java.lang.SecurityException:com.sun.deploy.net.HttpUtils.followRedirects(未知源)处com.sun.deploy.net.BasicHttpRequest.doRequest(未知源)处的URL重定向非法。 sun.net.www.protocol.http上的com.sun.deploy.net.DownloadEngine.isUpdateAvailable(未知源)的com.sun.deploy.cache.DeployCacheHandler.get(未知源)的BasicHttpRequest.doGetRequestEX(未知源)。位于sun.net.www.protocol.http的HttpURLConnection.plainConnect(未知源),位于sun.net.www.protocol.http.HttpURLConnection.getInputStream(未知源)位于sun.plugin.PluginURLJarFileCallBack。从sun.plugin.PluginURLJarFileCallBack.access $ 000(未知源)在java.security.AccessController.doPrivileged(本机方法)处的sun.plugin.PluginURLJarFileCallBack $ 2.run(未知源)在sun.plugin.PluginURLJarFileCallBack处下载JAR(未知源)。从sun.net.www.protocol.jar.URLJarFile.retrieve(未知源)处进行检索。 et.www.protocol.jar.URLJarFile.getJarFile(Unknown Source) at sun.net.www.protocol.jar.JarFileFactory.get(Unknown Source) at sun.net.www.protocol.jar.JarURLConnection.connect(Unknown Source) 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$800(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.(Unknown Source) at com.sun.deploy.security.DeployURLClassPath$3.run(Unknown Source) at java.security.AccessControlle et.www.protocol.jar.URLJarFile.getJarFile(未知源)在sun.net.www.protocol.jar.JarFileFactory.get(未知源)在sun.net.www.protocol.jar.JarURLConnection.connect(未知源) ),位于sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFileInternal(未知源),位于sun.plugin.net.protocol.jar.CachedJarURLConnection。 com.sun.deploy.security.DeployURLClassPath $ JarLoader.getJarFile(未知来源)com.sun.deploy.security.DeployURLClassPath $ JarLoader.access $ 800(未知来源)com.sun.deploy.security处的getJarFile(未知来源)部署URLClassPath $ JarLoader $ 1.run(未知源)(位于java.security.AccessController.doPrivileged(本机方法)位于com.sun.deploy.security.DeployURLClassPath $ JarLoader.ensureOpen(未知源)位于com.sun.deploy.security。 DeployURLClassPath $ JarLoader。(未知源),位于com.sun.deploy.security.DeployURLClassPath $ 3.run(未知源),位于java.security.AccessControlle r.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(Unknown Source) at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source) at sun.plugin2.applet.Plugin2Mana com.sun.deploy.security.DeployURLClassPath.getLoader(未知源)的com.sun.deploy.security.DeployURLClassPath.getLoader(com.sun.deploy.security.DeployURLClassPath的r.doPrivileged(本机方法)。在sun.plugin2.applet.Plugin2ClassLoader处的getResource(未知源)在java.security.AccessController.doPrivileged(本机方法)处在sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(在未知源处)处的java.security。 .applet.Applet2ClassLoader.findClass(未知来源)位于sun.plugin2.applet.Plugin2ClassLoader.loadClass0(未知来源)位于sun.plugin2.applet.Plugin2ClassLoader.loadClass(未知来源)位于sun.plugin2.applet.Plugin2ClassLoader.loadClass0(未知来源)源)位于sun.plugin2.applet.Plugin2ClassLoader.loadClass(未知源)位于sun.plugin2.applet.Plugin2ClassLoader.loadClass(未知源)位于java.lang.ClassLoader.loadClass(未知源)位于sun.plugin2.applet.Plugin2ClassLoader sun.plugin2.applet.Plugin2Mana上的.loadCode(未知源) ger.createApplet(Unknown Source) at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Exception: java.lang.SecurityException: illegal URL redirect ger.createApplet(未知来源),位于sun.plugin2.applet.Plugin2Manager $ AppletExecutionRunnable.run(未知来源),位于java.lang.Thread.run(未知来源)异常:java.lang.SecurityException:非法URL重定向

通过转到控制面板,Java,Java,View,然后编辑“运行时参数”,可以将-verbose:class添加到Java的命令行中。

To make your applet get sources NOT FROM its native host you have to sign it; 要使您的小程序不是从其本机主机获取资源,您必须对其进行签名;

Here are some helpful tutorials 这是一些有用的教程


Report that helps 报告有助于

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM