【问题标题】:Unable to run Java applet in localhost无法在 localhost 中运行 Java 小程序
【发布时间】:2023-03-10 22:12:01
【问题描述】:

我正在尝试在我的本地主机中运行一个 Java 小程序,该程序在树脂中运行。我有一个 JSP 文件 applet2.jsp,其中包含以下几行:

Testing an applet.

<IMG SRC="/static/images/tabTrackerRollM.gif"><BR>

<APPLET NAME="tracker" CODE="com.my.package" ARCHIVE="/applets/my_applet.jar" WIDTH="100%" HEIGHT="300" VIEWASTEXT MAYSCRIPT>
<param name=updateUrl value="http://localhost/test/appletSample3.jsp">
<param name=bgColor value="0,0,0">
<param name=updateFrequency value=4000>
</APPLET>

但是,每当我尝试在浏览器中运行小程序时,总是会收到以下错误消息:

在检查 Java 控制台后,我发现以下内容:

cache: Initialize resource manager: com.sun.deploy.cache.ResourceProviderImpl@9da1dd
basic: Added progress listener: sun.plugin.util.ProgressMonitorAdapter@1a0d62f
security: Expected Main URL: http://localhost/applet/my_applet.jar.jar
basic: Plugin2ClassLoader.addURL parent called for http://localhost/applet/my_applet.jar
network: Cache entry not found [url: http://localhost/applet/my_applet.jar, version: null]
network: Connecting http://localhost/applet/my_applet.jar with proxy=DIRECT
network: Connecting http://localhost:80/ with proxy=DIRECT
java.io.FileNotFoundException: http://localhost/applet/my_applet.jar
    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$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(Unknown Source)
    at sun.net.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$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(Unknown Source)
    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(Unknown Source)

它基本上说 my_applet.jar 丢失了。但是当我尝试使用浏览器通过指向http://localhost/applet/my_applet.jar 访问它时,它实际上存在:

我还尝试访问 Java.com 以检查我是否拥有最新的 Java:

我在以下平台上: 操作系统: Windows 7 (64) Java: JDK 1.7 (64)

我还清除了控制面板中的 java 小程序缓存,将浏览器安全设置为中等并清除了我的浏览器缓存。

【问题讨论】:

    标签: java jsp jakarta-ee applet


    【解决方案1】:

    我们必须先在浏览器上运行小程序之前对其进行签名,您是否尝试对您的小程序 Jar 进行签名。 这是签名命令。

    您应该在命令提示符下位于同一目录中。

    1.keytool -genkey -keyalg rsa -alias m4key  //m4key unique key
    2.keytool -export -alias m4key -file bmcert.crt   //bmcert.crt certificate name
    3.jar tvf Jarname.jar verify jar
    4.jarsigner Jarname.jar m4key
    5.jarsigner -verify -verbose -certs JarnameJarname.jar
    

    【讨论】:

    • 嗨,乔治!是的,我忘了说它已经签名了。
    猜你喜欢
    • 2019-11-24
    • 1970-01-01
    • 1970-01-01
    • 2012-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多