Java学习笔记之七 对Java程序设计环境的学习三 应用程序的运行

在开始学习Java语法和思想之前,我先学习了Java的介绍、历史,并安装了JDK,安装了集成开发环境

在安装了JDK和集成开发环境之后,就可以选择其中之一或者两者来开发程序。就开始学习而言,使用JDK和命令行环境可以加深对Java机制的理解。在明白了原理之后,再用集成开发环境,可以不再纠缠于细枝末节,将注意力放在开发应用程序本身上。

我在这次学习中,使用Core Java图书原书第8版的代码,并用Java 24版本的JDK来编译。

在学习Java语法之前,要编译Java代码,就需要使用别人的代码,而不是自己写。Core Java书籍的代码我已经下载到了我的电脑上。

我使用的第8版代码,存放与下述路径:

  • C:\java-notes\core-java\corejava8

这里的代码我会修改。所以这代码的zip文件我存放于其他位置。如果需要对比,我就重新解开zip文件,和我修改后的代码比对。

对JDK不同版本的准备工作

下载了4个不同的JDK。在学习时,我需要选择其中一个使用。

这里使用一个便利的脚本,来达到我的目的。

我在下列目录中,新建4个bat文件。并将这个目录加入我Windows操作系统的账户的环境变量的Path变量中。

  • C:\jdk-switcher

这4个bat文件分别是:

  • liberica-21.bat
  • liberica-24.bat
  • zulu-21.bat
  • zulu-24.bat

4个文件的内容参考:

LibericaJDK-21

@echo off

set JAVA_HOME=C:\Program Files\BellSoft\LibericaJDK-21-Full
set PATH=%JAVA_HOME%\bin;%PATH%

java -version

LibericalJDK-24

@echo off

set JAVA_HOME=C:\Program Files\BellSoft\LibericaJDK-24-Full
set PATH=%JAVA_HOME%\bin;%PATH%

java -version

Zulu-21

@echo off

set JAVA_HOME=C:\Program Files\Zulu\zulu-21
set PATH=%JAVA_HOME%\bin;%PATH%

java -version

Zulu-24

@echo off

set JAVA_HOME=C:\Program Files\Zulu\zulu-24
set PATH=%JAVA_HOME%\bin;%PATH%

java -version

打开命令提示符。

输入下列命令,可切换到不同的JDK。

  • liberica-21
  • liberica-24
  • zulu-21
  • zulu-24

使用命令行工具

用Windows文件资源管理器查看代码文件。

进入代码目录。

  • C:\java-notes\core-java\corejava8\v1ch02\Welcome

这个文件夹下有一个文件:

  • Welcome.java

现在我打开命令提示符。进入相应的目录。

cd \java-notes\core-java\corejava8\v1ch02\Welcome
dir
 C:\java-notes\core-java\corejava8\v1ch02\Welcome 的目录

2025/07/18  13:19    <DIR>          .
2025/07/18  13:19    <DIR>          ..
2007/04/08  11:09               440 Welcome.java
               1 个文件            440 字节
               2 个目录  7,452,876,800 可用字节

选择JDK版本。

liberica-24

编译和运行程序。

java Welcome.java
java Welcome

输出如图所示:

程序源代码为:

在上面的命令中,javac编译了Welcome.java程序,在和这个java源代码相同的文件夹下生成了一个Welcome.class文件。

java命令执行Welcome.class文件。

javac将源代码编译为class字节码文件。javac的参数是源代码文件,包括扩展名。

java执行class字节码文件,java参数只需要类名称,即这里的Welcome。

Windows是不区分大小写的平台。但Java编译过程中,建议严格遵守大小写规定。

另外,下列命令:

java Welcome.java

也可以执行,但不会在文件夹下面生成对应的字节码。看起来是现代JDK的另一种新特性。

使用集成开发工具Eclipse IDE

启动Eclipse IDE。具体界面可见Java学习笔记之四十七

新建一个Java Project。选择菜单项目“文件 | 新建 | Java Project”。

出现新建Java Project对话框后,根据自己的需要,来选择和输入相应的内容。

之后点击“完成”。

在这个新建Java Project的对话框中,有许多我不理解的地方。比如:

  • Working sets是什么。
  • Module是什么

集成开发环境相比较前面的命令行,显然引入了许多新的概念。而这些概念,我都是不清楚的。所以只能抹黑使用。

之后,进入新界面。这个时候,应该关闭Eclipse IDE的欢迎界面。要不然布局会非常错乱。

之后,我发现新建了一个新的、空的项目。项目中没有任何Java源文件。

我从“文件 | 新建 | 类”菜单项,打开类向导,新建了一个类文件。

这个类被命名为“Welcome”。集成开发环境生成了一些内容,剩下的内容,我手工输入。

之后,我点击“运行 | 运行为 | Java Application”,运行程序。

这个时候,集成开发环境的下边会出现一个控制台窗口。里面会显示运行结果。

按照我新建项目时的设置,我发现:

  • class文件被放在 C:\Users\app25\eclipse-workspace\Welcome\bin 文件夹下。
  • 源代码文件被放在 C:\Users\app25\eclipse-workspace\Welcome\src 目录下。

所谓项目,只是Eclipse IDE的配置文件。这种配置应该是特有于Eclipse IDE的,而不是Java相关的标准。

使用集成开发工具NetBeans IDE

NetBeans除了图标有些丑陋之外,其他方面,我初看还是感觉可以的。

启动NetBeans IDE。相关截图可参考Java学习笔记之四十七

选择菜单“文件 | 新建项目”,打开新建项目对话框。

选择“Java with Maven | Java Application”。点击“下一步”。

等一会。会出现下述界面。

根据需要填写相关信息。点击“完成”。

这时候会打开工作区。

里面的代码已经有了。

选择菜单“运行 | 运行项目 (Welcome)”,来运行项目。

经过漫长的等待,出现结果。

我的一些想法:

  • NetBeans集成开发环境还是引入了不少新的概念。这些概念对于初学Java的人来说依然非常陌生。比如 Java with Marven、Java with Gradle、Java with Ant、Java Application、EJB Module等。这些新概念的学习,都需要时间。相比命令行,引入大量的新概念,对学习是一种明显的干扰。在系统学习了Java,了解了这些概念之后,再使用NetBeans集成开发环境,会感觉更轻松。
  • 有些步骤中,点击下一步后,会出现进度条滚动。这似乎是从互联网上下载一些东西。
  • 编译非常缓慢。比如我这个简单的项目的运行,花了7分19秒。相比命令行工具,这是非常耗费时间的。

使用集成开发工具IntelliJ IDEA(Community Edition)

启动IntelliJ IDEA。具体界面可参考Java学习笔记之四十七

新建项目。可“文件 | 新建 | 项目”,或在启动引导界面上新建项目。

新建后,自动生成的代码。

从菜单“运行 | 运行 Main.java”来运行代码。

运行速度非常快。结果如下。

IntelliJ IDEA是个商业程序。总让人有些商业上的顾虑。

现在我只是学习Java。今后具体的使用,还需要根据实际情况来说。


集成开发环境,在一定程度上带来了简便。但它也带来了许多复杂的新概念。这些概念都有学习曲线,需要一定的时间和精力来学习。

我目前主要目的是学习Java,而不是集成开发环境的用法。所以主要精力不在集成开发环境上。对集成开发环境中的功能,只是粗略看看。

待Java学习有成后,再来集中学习和研究集成开发环境及开发效率。

运行图形化应用程序

初步体验了集成开发环境后,发现集成开发环境有它自己的复杂性。

这次运行图形化应用程序采用命令行方式。

进入源代码目录 C:\java-notes\core-java\corejava8\v1ch02\ImageViewer

javac ImageViewer.java
java ImageViewer

启动应用程序后,从文件菜单中打开照片。

运行Applet

进入源代码目录C:\java-notes\core-java\corejava8\v1ch02\WelcomeApplet

编译:

javac WelcomeApplet.java
C:\java-notes\core-java\corejava8\v1ch02\WelcomeApplet>javac WelcomeApplet.java
WelcomeApplet.java:11: 警告: [removal] javax.swing 中的 JApplet 已过时, 且标记为待删除
public class WelcomeApplet extends JApplet
                                   ^
注: WelcomeApplet.java使用或覆盖了已过时的 API。
注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
1 个警告

C:\java-notes\core-java\corejava8\v1ch02\WelcomeApplet>appletviewer WelcomeApplet.html
'appletviewer' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

C:\java-notes\core-java\corejava8\v1ch02\WelcomeApplet>

运行:

appletviewer WelcomeApple.html

appletviewer已经不在了,没法预览了。

Java Applet技术已经过时了。这意味着,在实际使用中,不该再用这种技术。而古老的、遗留的Java Applet技术,可根据实际需要,迁移到其他类型的程序,比如改写成为原生的Java应用程序。


至此,Java程序设计环境,也就是JDK和集成开发环境的学习已经完成。

可以看到,对于简单的项目,使用集成开发环境太过复杂了。而复杂的项目,对于我这样一个才开始学习Java的人来说,还没有见过。

当然,项目越简单,开发越容易。我们的开发,最终肯定都是复杂的项目变为简单的项目。复杂的手段变为简单的手段。复杂的工具变为简单的工具。

总之,编程越简单越好。而那些复杂的概念,我并不着急去研究和理解。