魔方吧·中文魔方俱乐部

标题: 使用jdk里的appletviewer在本地查看Java Applet [打印本页]

作者: 怀表    时间: 2022-4-7 01:36:16     标题: 使用jdk里的appletviewer在本地查看Java Applet

本帖最后由 怀表 于 2022-4-7 16:57 编辑

*appletviewer不是浏览器也不是浏览器插件,没办法解决浏览器不显示java applet的问题。
*请注意本帖提到的方法是非常麻烦的,需要手写html。

jdk里面有个appletviewer,可以运行java applet,虽然这东西原先是开发用的。

1、安装方法
需要下载jdk10或更低版本的jdk,jdk11开始就没有appletviewer了。
可以下jdk的地方很多。
https://adoptopenjdk.net/
https://www.oracle.com/java/technologies/downloads/archive/
…………

如果你用的系统有包管理器,那直接用包管理器装就行。

2、下载jar
我也搞不清楚mf8上有多少java applet,这里列出60个链接。
BMDbmtPlay.jar
BMDJBPlay.jar
BMDjzhbPlay.jar
BMDmfPlay.jar
BMDspfPlay.jar
BMDwj24Play.jar
BMDwldxPlay.jar
BMDwmfPlay.jar
BMDyx24Play.jar
BMTMZMPlay.jar
CQWMFPlay.jar
Cube12ZPlay.jar
CubePlay.jar
D24MTPlay.jar
DBSMZMPlay.jar
DJJ8MTPlay.jar
DWMFPlay.jar
DXFJBPlay.jar
ESMTPlay.jar
ESMTZJPlay.jar
ESMTZLPlay.jar
FMNPlay.jar
FSWMPlay.jar
HL12ZMZMPlay.jar
HL16MTPlay.jar
HL80MTMZMPlay.jar
HL8ZMZMPlay.jar
HLMZMPlay.jar
JBCUBEPlay.jar
JJ8MTPlay.jar
JJLX12MTPlay.jar
KBMFPlay.jar
L12zhouPlay.jar
LC12zhouPlay.jar
LDWMPlay.jar
LX12MTPlay.jar
LX30MTPlay.jar
MWmfPlay.jar
MZM22MTPlay.jar
MZMPlay.jar
MZMZZPlay.jar
OctaPlay.jar
QZJWMPlay.jar
R26MTPlay.jar
SJH6MTPlay.jar
SMTQMFPlay.jar
SQmzmPlay.jar
SQPlay.jar
WJ24MTPlay.jar
WmfPlay.jar
WMTMZMPlay.jar
X12MTPlay.jar
XXwmfPlay.jar
YX24MTPlay.jar
Z24CubePlay.jar
zjwmfPlay.jar
ZLWMFPlay.jar
ZQMZMPlay.jar
zuqiuPlay.jar
SBJDWMFPlay.jar

3、运行
java applet是嵌在网页中的,所以需要准备一个html。
下面是一个简单的例子
请把它和SBJDWMFPlay.jar放在同一文件夹下。
  1. <!DOCTYPE html>
  2. <html>
  3.     <head>
  4.         <title>hahaha</title>
  5.         <meta charset="utf8">
  6.     </head>
  7.     <body>
  8.         <applet code="SBJDWMFPlay" archive="SBJDWMFPlay.jar" width="400" height="500">
  9.             <param name="Order" value=0><param name=Speed value=10>
  10.             <param name=coloredit value=Y>
  11.         </applet>
  12.     </body>
  13. </html>
复制代码
在这个文件夹下打开命令行:
执行
appletviewer 文件名.html
你会看到
sbjdw-fs8.png
appletviewer用法:
appletviewer <options> url

<param>标签是用来写给applet的参数的。比如要打乱可以写
  1. <param name=Random value=Y>
复制代码
这里可以抄参数http://bbs.mf8-china.com/java/hubo/Mftools.html
在各种在线玩的帖子里也有参数可以抄。

*温馨提示,appletviewer并没有神奇的防御能力,请不要拿来运行来源不明的java applet。

附一段显示<applet>元素那部分html代码的油猴脚本
  1. // ==UserScript==
  2. // @name        test
  3. // @namespace   test
  4. // @match       *://*.mf8-china.com/*
  5. // ==/UserScript==
  6. let l=document.getElementsByTagName('applet');
  7. if(l.length>0){
  8.   let n;
  9.   for(const e of l){
  10.     n=document.createElement('span');
  11.     n.textContent=e.outerHTML;
  12.     e.parentElement.insertBefore(n,e);
  13.   }
  14. }
复制代码


附件: sbjdw-fs8.png (2022-4-7 01:23:40, 75.71 KB) / 下载次数 30
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=Mjc2NzcwfDM2YmExOWQxfDE3MzIyNTkyNjN8MHww
作者: 乌木    时间: 2022-4-7 10:10:59

本论坛可以直接贴java动图(见下面例子),怎么还要如你说的做呢?你的意思是否在别的论坛上就要如你说的做法?
[SBJDWMFjava=450,400]
[param=Order]0[/param]
[param=Speed]5[/param]
[param=initScript]R2;U'2;F2;R'2;U'2;F'2;U2;[/param]
[param=butbgcolor]99d658[/param]
[param=bgcolor]f3a0e2[/param]
[/SBJDWMFjava]

作者: 一只小井盖    时间: 2022-4-7 10:34:09

胡波老师的魔方模拟器用IE都不能运行(window7),方法明明是对的,郁闷
现在好多浏览器都不支持Java了,怎么办啊
(难道window7就是用不了Java吗?望指点)
作者: 怀表    时间: 2022-4-7 15:17:11

本帖最后由 怀表 于 2022-4-7 15:30 编辑
乌木 发表于 2022-4-7 10:10
本论坛可以直接贴java动图(见下面例子),怎么还要如你说的做呢?你的意思是否在别的论坛上就要如你说的做 ...


我知道啊,这个帖里的方法本来就不是为了让浏览器能够显示java动图。(appletviewer是在浏览器外的)我只是写出除使用IE等较老的浏览器外的另一种查看方法,我有时候要用windows以外的系统。
作者: 乌木    时间: 2022-4-8 20:29:04

怀表 发表于 2022-4-7 15:17
我知道啊,这个帖里的方法本来就不是为了让浏览器能够显示java动图。(appletviewer是在浏览器外的)我 ...

哦。以前我曾经把有关代码连同它所用的.jar文件一起放在一个文件夹中,可以离线演示java动画。
看来就是你说的事情。对吧?
作者: 怀表    时间: 2022-4-8 21:25:13

乌木 发表于 2022-4-8 20:29
哦。以前我曾经把有关代码连同它所用的.jar文件一起放在一个文件夹中,可以离线演示java动画。
看来就是 ...

还是有一些区别,当时你查看用的是真的浏览器而不是appletviewer,它有能力渲染html和执行javascript,加载applet的时候使用插件技术,但是需要进行安全相关的设置。appletviewer是一个分离的应用。
Java Applet是一项倒霉的技术,二十多年来出过不少安全问题,有它自身沙盒的问题,也有和NPAPI等相关的问题。设置变来变去,到java 11的时候甚至被oracle移除了,现在浏览器也移除了对插件的支持。




欢迎光临 魔方吧·中文魔方俱乐部 (http://bbs.mf8-china.com/) Powered by Discuz! X2