惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Hackread – Cybersecurity News, Data Breaches, AI and More
The Last Watchdog
The Last Watchdog
T
Threatpost
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
S
Security @ Cisco Blogs
S
Securelist
L
LINUX DO - 最新话题
The Hacker News
The Hacker News
S
SegmentFault 最新的问题
C
Cyber Attacks, Cyber Crime and Cyber Security
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
博客园_首页
博客园 - Franky
H
Heimdal Security Blog
G
Google Developers Blog
N
News and Events Feed by Topic
Cisco Talos Blog
Cisco Talos Blog
Engineering at Meta
Engineering at Meta
B
Blog RSS Feed
S
Schneier on Security
T
Threat Research - Cisco Blogs
D
DataBreaches.Net
Simon Willison's Weblog
Simon Willison's Weblog
Hacker News: Ask HN
Hacker News: Ask HN
WordPress大学
WordPress大学
Latest news
Latest news
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 聂微东
N
Netflix TechBlog - Medium
T
Tor Project blog
月光博客
月光博客
D
Docker
美团技术团队
Recent Announcements
Recent Announcements
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Cyberwarzone
Cyberwarzone
小众软件
小众软件
TaoSecurity Blog
TaoSecurity Blog
Blog — PlanetScale
Blog — PlanetScale
L
LINUX DO - 热门话题
O
OpenAI News
人人都是产品经理
人人都是产品经理
www.infosecurity-magazine.com
www.infosecurity-magazine.com
V
V2EX
C
Cisco Blogs
NISL@THU
NISL@THU
Recent Commits to openclaw:main
Recent Commits to openclaw:main
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 司徒正美

纸鹿摸鱼处

北京实习300天 | 纸鹿摸鱼处 实习后买了一堆东西 | 纸鹿摸鱼处 谈谈不受欢迎的博客技术特征 | 纸鹿摸鱼处 我们的设备被拿来做了什么:软件的背景行为 | 纸鹿摸鱼处 生成式AI正在生成 | 纸鹿摸鱼处 前端字体二三事 | 纸鹿摸鱼处 深色模式开发的最佳实践 | 纸鹿摸鱼处 寻不回手工油糕 | 纸鹿摸鱼处 一些数码外设的评价和“捡垃圾”心得 | 纸鹿摸鱼处 朋友的 Vivado 和 Modelsim 装上了吗 | 纸鹿摸鱼处 迟到三月的年末博客杂谈:动力、文章和内容 | 纸鹿摸鱼处 VitePress 不完全优化指南 | 纸鹿摸鱼处 给电脑新手的笔记本开荒指南导读 | 纸鹿摸鱼处 再谈考试时钟:技术之外的思考 | 纸鹿摸鱼处 今日校园见闻:我已经出离高兴了 | 纸鹿摸鱼处 Windows 上的开源软件入门 | 纸鹿摸鱼处 博客进化:从 Hexo 到 Nuxt Content | 纸鹿摸鱼处 祖母的90年代南昌差旅之险 | 纸鹿摸鱼处 Linux 下通过 Samba 共享文件夹 | 纸鹿摸鱼处 从“端口无法访问”到本地环境问题——朋友的博客踩坑记录 | 纸鹿摸鱼处 Windows 空间管理/清理指南 | 纸鹿摸鱼处 遭遇APP乱象:老人的「钱袋子」开线了 | 纸鹿摸鱼处 封面被 Linux QQ 官方用了,但是有一些小缺陷 | 纸鹿摸鱼处 Windows 终端体验优化指南 | 纸鹿摸鱼处 有问题,就要讲出来。 | 纸鹿摸鱼处 从 CSS 排序折腾到 Stylelint 和 pnpm | 纸鹿摸鱼处 使用 DOSBox 的多种方式 | 纸鹿摸鱼处 今日有「假」 | 纸鹿摸鱼处 把博客文章按年份放在子文件夹中了 | 纸鹿摸鱼处 写过的奇妙代码。 | 纸鹿摸鱼处 Arch Linux 启动引导修复 | 纸鹿摸鱼处 在延长今天和期待明天之间 | 纸鹿摸鱼处 今日无事,除了一些技术咨询 | 纸鹿摸鱼处 系统引导配置分享 | 纸鹿摸鱼处 病毒高占用CPU,三天杀俩 | 纸鹿摸鱼处 运营商又想多收话费了 | 纸鹿摸鱼处 电脑连接手机,手机给电脑传文件…… | 纸鹿摸鱼处 Moonlight 串流指南 | 纸鹿摸鱼处 SSH 免密登录 | 纸鹿摸鱼处 Termux 简单指南 | 纸鹿摸鱼处 Tailscale 不完全使用指南 | 纸鹿摸鱼处 Windows 安装指南 | 纸鹿摸鱼处 Arch Linux 易用性及美化 | 纸鹿摸鱼处 Arch Linux 初步配置 | 纸鹿摸鱼处 使用 ArchInstall 安装 Arch Linux | 纸鹿摸鱼处 VS Code 简单配置项 | 纸鹿摸鱼处 他修电脑又遇到了我 | 纸鹿摸鱼处 修监控 (授权转载) | 纸鹿摸鱼处 被大块落冰砸中的话—— | 纸鹿摸鱼处
配置并差点运行不了 Java Applet | 纸鹿摸鱼处
纸鹿本鹿, hi@zhilu.cyou · 2024-09-26 · via 纸鹿摸鱼处

PPT:勾起疑惑

我向来不惮以最宽容的过时预期揣测大学教材和课件。包括但不限于——

  • 2022 年秋《高级语言程序设计 (C)》
    • 使用1998年发布的微软 VC 6.0 开发环境
    • 学校编写的教材使用了大量的非标准写法 void main(),此写法在 2000 年代初逐渐废弃
  • 2024 年春《面向对象与 C++ 程序设计》
    • 课程使用谭浩强的《C++ 程序设计(第4版)》
  • 2024 年秋《Java 语言程序设计》
    • 课件中讲述配置2004年发布的 Java 5 SDK 1.5.0 环境
    • 课件介绍2000年代中期被逐渐取代的 Java Applet

3、Java开发环境

设置环境变量:

  • PATH=C:\Program Files\Java\j2sdk1.5.0\bin(与JDK的安装目录有关)
  • CLASSPATH=C:\Program Files\Java\j2sdk1.5.0\lib;.(与JDK的安装目录有关,.代表当前目录)
  • 环境变量设置途径:Windows NT/2000/XP:控制面板→系统→高级→环境变量

听到别人讲述这些事情时,我只感到幸灾乐祸,但当这一切发生在自己身上时,我便无话可说、无言以对也无可奈何了。

2024 年秋《Java 语言程序设计》的第一次上机实验,需要以代码块填空的方式完成 HelloWorld、简单 Java Applet 和联合编译任务。

我的电脑中有微软的 OpenJDK 17 和 21,只需要在 VS Code 中安装 Language Support for Java(TM) by Red Hat 扩展即可满足简单的代码编写需求。

OpenJDK 17 默认使用 ANSI 编码(GB2312/GBK/GB18030),在我的 PATH 环境变量中,其优先级高于默认使用 UTF-8 编码的 OpenJDK 21。

为正常输出结果,有以下方法:

  • 将文件编码设置为 ANSI(GB2312/GBK/GB18030)
  • 提升 PATH 环境变量中的 Java 21 的优先级
  • 在编译时通过 javac -encoding UTF-8 手动指定字符编码

说干就干,我很快完成了 HelloWorld 任务,但是我在 Java Applet 代码瞥见弃用提示,又在网上查到它需要在 IE 内运行,便瞬间不淡定了。

虽然我按照要求写好了代码,并使用一定手段启动了 IE,但并没有达到预期结果。

后来许多同学向老师反映,才取消了 Java Applet 实验任务

🤔

竟然还要用 IE 浏览器?我倒要看看这环境到底有多难配!

大战 Java Applet 环境

禁止用于教学

Java Applet 在20世纪90年代兴起,2000年代中期被其他技术取代,自2017年 Java 9 发布后已不再支持。

严禁将本部分内容用于课程教学目的,学生应当学习现代计算机知识。

安装旧版 JDK

官网下载(没成功)

如果只是运行 Java Applet,可以下载 Java 8 运行环境 jre-8uxxx

从甲骨文官网的存档 下载 Java SE 8 (JDK 8u211 之后的版本) 时,必须注册 Oracle 账号并提供多项个人信息(包括电子邮件地址、国家/地区、姓名、英文姓名、职位、办公电话、公司名称、地址、城市、省/自治区/直辖市、邮政编码,均为必填项),以防止新的开发人员使用这种过时的 JDK 进行开发。

通过镜像站下载社区构建版

当然,你可以通过清华大学开源软件镜像站下载 Adoptium OpenJDK 8。安装、下载都十分方便。

Adoptium OpenJDK 8 - 清华大学开源软件镜像站

mirrors.tuna.tsinghua.edu.cn

安装后,它会自动配置自身到系统 PATH 环境变量的最高优先级。

编译 Java Applet

  • 编写 Java Applet 代码
FirstApplet.javajava
import java.applet.*;
import java.awt.*;

public class FirstApplet extends Applet {
    public void paint(Graphics g) {
        g.setColor(Color.blue);
        // 【代码1】在 Java Applet 中绘制一行文字:“这是一个 Java Applet 程序”
        g.drawString("这是一个 Java Applet 程序", 50, 50);
        g.setColor(Color.red);
        g.setFont(new Font("宋体", Font.BOLD, 36));
        // 【代码2】在 Java Applet 中绘制一行文字:“我改变了字体”
        g.drawString("我改变了字体", 50, 100);
    }
}
  • 确认编译环境为 Java 8(1.8.0_xxx
PS>

javac -version

  • 编译为 .class 文件
PS>

javac -encoding UTF-8 FirstApplet.java

  • 编写 HTML 代码
fitst-applet.htmlhtml
<applet code="FirstApplet.class" width="300" height="300"></applet>

运行

通过 IE 运行(没成功)

可以把这个脚本放在用户目录下,方便从“运行”或终端启动 IE 浏览器。

openie.vbsvb
CreateObject("InternetExplorer.Application").Visible=true

通过 IE 浏览器打开网页,提醒“您正在查看的页使用 Java”。根据 Java 官网的 IE 支持,出现此提示是因为未注册 Java 插件。

即使安装了 Oracle JRE 8,控制面板里出现了相关项,也无法在 IE 中查看 Applet;我也按照官网的 在浏览器中启用 Java 检查了本地设置,最后放弃了。

通过 Applet 查看器

正当我打算放弃的时候,我忽然发现了 Applet 查看器(appletviewer)。上文提到的 Adoptium OpenJDK 8 带有这个工具。于是,很容易地:

PS>

appletviewer fitst-applet.html

这是一个 Java Applet程序

我改变了字体

写在最后

开始写文章时,我看了一眼 PPT 的属性。文件创建于 2001-09-06 12:05,“公司”为北京大学计算机系

写完文章时,我看了一眼实验报告 Word 的属性。文件最后一次打印于 2006-10-31 23:40,“标题”是 中 药 药 理 实 验 指 导

确实需要一剂猛药。