如何修复 applet 在 eclipse 中工作但在任何浏览器中不工作
How to fix applet working in eclipse but not in any browser
我想在动态 Web 项目中使用 java 小程序,但它不起作用。
我创建了小程序:
`public class MyApplet extends JApplet {
static final long serialVersionUID = 1L;
private JTextField textField;`
/**
* Create the applet.
*/
public MyApplet() {
getContentPane().setLayout(null);
JLabel lblTag = new JLabel("Tag:");
lblTag.setBounds(91, 51, 46, 14);
getContentPane().add(lblTag);
textField = new JTextField();
textField.setBounds(126, 48, 86, 20);
getContentPane().add(textField);
textField.setColumns(10);
}
}`
然后我把它放到 .JAR 文件中
接下来我创建了动态 Web 项目并在 index.html 文件所在的文件夹中分配了 .JAR 文件。
我也放了
`<applet code="MyApplet.class" archive="name.jar" width="500" height="500" ></applet>`
到index.html个文件。
当我在 apache 服务器上打开这个项目时,我可以看到 html 文件带有样式,但 aplet 没有显示。它发生在每个浏览器中。我在控制台中没有任何错误:
`sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version: Apache Tomcat/8.5.37
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built: Dec 12 2018 12:07:02 UTC
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server number: 8.5.37.0
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name: Windows 10
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version: 10.0
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture: amd64
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home: C:\Program Files\Java\jre1.8.0_121
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version: 1.8.0_121-b13
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor: Oracle Corporation
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE: C:\Users\Admin\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME: C:\Users\Admin\Desktop\Projekty PWJJ\apache-tomcat-8.5.37\apache-tomcat-8.5.37
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=C:\Users\Admin\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=C:\Users\Admin\Desktop\Projekty PWJJ\apache-tomcat-8.5.37\apache-tomcat-8.5.37
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dwtp.deploy=C:\Users\Admin\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.endorsed.dirs=C:\Users\Admin\Desktop\Projekty PWJJ\apache-tomcat-8.5.37\apache-tomcat-8.5.37\endorsed
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dfile.encoding=Cp1250
sty 20, 2019 9:13:47 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [C:\Program Files\Java\jre1.8.0_121\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Program Files/Java/jre1.8.0_121/bin/server;C:/Program Files/Java/jre1.8.0_121/bin;C:/Program Files/Java/jre1.8.0_121/lib/amd64;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Skype\Phone\;C:\MinGW\bin;C:\WINDOWS\system32\config\systemprofile\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files\Microsoft SQL Server0\Tools\Binn\;C:\Program Files (x86)\Windows Kits.1\Windows Performance Toolkit\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\PuTTY\;C:\Program Files\Git\cmd;C:\Users\Admin\AppData\Local\Microsoft\WindowsApps;C:\Program Files (x86)\Nmap;C:\Users\Admin\AppData\Local\GitHubDesktop\bin;C:\WINDOWS\system32;;.]
sty 20, 2019 9:13:47 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
sty 20, 2019 9:13:47 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
sty 20, 2019 9:13:47 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-nio-8009"]
sty 20, 2019 9:13:47 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 608 ms
sty 20, 2019 9:13:47 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service [Catalina]
sty 20, 2019 9:13:47 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/8.5.37
sty 20, 2019 9:13:48 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
sty 20, 2019 9:13:48 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-nio-8009"]
sty 20, 2019 9:13:48 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 274 ms`
这不适用于现代浏览器。 Java 允许 运行 小程序的插件现在已经过时了很长一段时间,例如Firefox did this in 2016:
Websites and publishers which currently use plugins such as Silverlight or Java should accelerate their transition to Web technologies. The Web platform is powerful and can usually do everything that a plugin can do. In the rare cases where a site needs to extend Web technologies, the recommended solution is to develop the additional features as a Firefox add-on. Site maintainers should prepare for plugins to stop working in all versions of Firefox by the end of 2016.
我想在动态 Web 项目中使用 java 小程序,但它不起作用。 我创建了小程序:
`public class MyApplet extends JApplet {
static final long serialVersionUID = 1L;
private JTextField textField;`
/**
* Create the applet.
*/
public MyApplet() {
getContentPane().setLayout(null);
JLabel lblTag = new JLabel("Tag:");
lblTag.setBounds(91, 51, 46, 14);
getContentPane().add(lblTag);
textField = new JTextField();
textField.setBounds(126, 48, 86, 20);
getContentPane().add(textField);
textField.setColumns(10);
}
}`
然后我把它放到 .JAR 文件中
接下来我创建了动态 Web 项目并在 index.html 文件所在的文件夹中分配了 .JAR 文件。
我也放了
`<applet code="MyApplet.class" archive="name.jar" width="500" height="500" ></applet>`
到index.html个文件。
当我在 apache 服务器上打开这个项目时,我可以看到 html 文件带有样式,但 aplet 没有显示。它发生在每个浏览器中。我在控制台中没有任何错误:
`sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version: Apache Tomcat/8.5.37
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built: Dec 12 2018 12:07:02 UTC
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server number: 8.5.37.0
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name: Windows 10
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version: 10.0
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture: amd64
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home: C:\Program Files\Java\jre1.8.0_121
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version: 1.8.0_121-b13
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor: Oracle Corporation
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE: C:\Users\Admin\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME: C:\Users\Admin\Desktop\Projekty PWJJ\apache-tomcat-8.5.37\apache-tomcat-8.5.37
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=C:\Users\Admin\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=C:\Users\Admin\Desktop\Projekty PWJJ\apache-tomcat-8.5.37\apache-tomcat-8.5.37
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dwtp.deploy=C:\Users\Admin\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.endorsed.dirs=C:\Users\Admin\Desktop\Projekty PWJJ\apache-tomcat-8.5.37\apache-tomcat-8.5.37\endorsed
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dfile.encoding=Cp1250
sty 20, 2019 9:13:47 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [C:\Program Files\Java\jre1.8.0_121\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Program Files/Java/jre1.8.0_121/bin/server;C:/Program Files/Java/jre1.8.0_121/bin;C:/Program Files/Java/jre1.8.0_121/lib/amd64;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Skype\Phone\;C:\MinGW\bin;C:\WINDOWS\system32\config\systemprofile\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files\Microsoft SQL Server0\Tools\Binn\;C:\Program Files (x86)\Windows Kits.1\Windows Performance Toolkit\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\PuTTY\;C:\Program Files\Git\cmd;C:\Users\Admin\AppData\Local\Microsoft\WindowsApps;C:\Program Files (x86)\Nmap;C:\Users\Admin\AppData\Local\GitHubDesktop\bin;C:\WINDOWS\system32;;.]
sty 20, 2019 9:13:47 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
sty 20, 2019 9:13:47 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
sty 20, 2019 9:13:47 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-nio-8009"]
sty 20, 2019 9:13:47 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
sty 20, 2019 9:13:47 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 608 ms
sty 20, 2019 9:13:47 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service [Catalina]
sty 20, 2019 9:13:47 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/8.5.37
sty 20, 2019 9:13:48 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
sty 20, 2019 9:13:48 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-nio-8009"]
sty 20, 2019 9:13:48 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 274 ms`
这不适用于现代浏览器。 Java 允许 运行 小程序的插件现在已经过时了很长一段时间,例如Firefox did this in 2016:
Websites and publishers which currently use plugins such as Silverlight or Java should accelerate their transition to Web technologies. The Web platform is powerful and can usually do everything that a plugin can do. In the rare cases where a site needs to extend Web technologies, the recommended solution is to develop the additional features as a Firefox add-on. Site maintainers should prepare for plugins to stop working in all versions of Firefox by the end of 2016.