使用命令行工具运行 Java(学习 Java 编程语言 002)

1. 运行 Java 程序

JDK 的所有工作都要在终端窗口中键入命令来完成。下面演示如何在命令行编译并运行 Java 程序。

  1. 创建 Welcome.java 文件

    public class Welcome {
        public static void main(String[] args) {
            String greeting = "Welcome to xiang017";
            System.out.println(greeting);
    
            for (int i = 0; i < greeting.length(); i++) {
                System.out.print("=");
            }
            System.out.println();
        }
    
    }
    
  2. 打开命令行窗口,进入 Welcome.java 文件所在的目录。

  3. 键入下面的命令:

    javac Welcome.java
    java Welcome

    下面展示在终端执的行结果:

    C:\xiang017>javac Welcome.java
    
    C:\xiang017>java Welcome
    Welcome to xiang017
    ===================
    
    
  • javac 程序是一个 Java 编译器,它将文件 Welcome.java 编译成 Welcome.class。
  • java 程序启动 Java 虚拟机,虚拟机执行编译器编译到类文件中的字节码。

2. 使用终端需要注意一下几点:

  1. 手动输入源程序,一定要注意大小写。类名和文件名一致。
  2. 编译时需要一个文件名(Welcome.java)。运行程序时,需要类名(Welcome),不要带扩展名 .class 或 .java。
  3. 如果看到如 Bad command or file name 或 java:command not found 之类的消息,就要检查 JDK 安装是否正确。
  4. 如果 javac 报告一个错误,指出无法找到 Welcome.java,就应该检查目录中是否存在这个文件。
  5. 运行程序后,如果收到关于 java.lang.NoClassDefFoundError 的错误消息,就应该仔细检查出问题的类名。
  6. 如果键入 java Welcome,而虚拟机没有找到 Welcome 类,就应该检查是否有人设置了系统的 CLASSPATH 环境变量(将这个变量设置为全局并不是提倡的做法,然而, Windows 中有些比较差的软件安装程序确实会这样做)。可以像设置 PATH 环境变量一样设置 CLASSPATH,不过这里将删除这个设置。

3. 编译源程序有两种方法:

定义 2 个源文件,分别为 Xiang017.java 和 Xiang017Test.java,内容如下:

public class Xiang017 {
    public void show() {
        System.out.println("xiang017 -> show()");
    }
}
public class Xiang017Test{
    public static void main(String[] args) {
        Xiang017 x = new Xiang017();
        x.show();
    }
}
  1. 使用通配符调用 Java 编译器

    javac Xiang017*.java
    

    所有与通配符匹配的源文件都将被编译成类文件。

  2. 关联编译 Java 文件

    javac Xiang017Test.java
    

    并没有显示地编译 Xiang017.java。
    当 Java 编译器发现 Xiang017Test.java 使用了 Xiang017 类时会查找名为 Xiang017.class 的文件。如果没有找到这个文件,就会自动地搜索 Xiang017.java,然后,对它进行编译。
    更重要的是: 如果 Xiang017.java 版本较已有的 Xiang017.class 文件版本新,Java 编译器就会自动地重新编译这个文件。

3. 在 Windows 命令行窗口中运行UTF-8 编码的 Java 文件

在 Windows 命令行中执行 Java 源码时,如果文件中有中文,就会报错。原因是命令行是以 GBK 的格式执行源码文件,中文解析出现乱码,源码就无法编译运行了。

在添加环境变量 JAVA_TOOL_OPTIONS,将值设置为 “-Dfile.encoding=UTF-8”,就可以解决上述问题。

JAVA_TOOL_OPTIONS 环境变量

执行命令:
javac Xiang017.java
输出:
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
这样就可以执行 utf-8 编码格式的 Java 源码文件,

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容