首页 > 编程语言 >Java官方笔记1编写运行Java程序

Java官方笔记1编写运行Java程序

时间:2023-03-07 20:33:40浏览次数:54  
标签:Java javac java 笔记 编译 MyFirstClass 编写 class

你可能已经迫不及待想安装Java,写个Java程序跑起来了。但是在这之前,有些概念需要提前了解,因为Java跟C、C++和Python都有点不一样。

编译和执行

我们在文本文件中编写英文代码,这些英文计算机是看不懂的,因此需要做一下转换,转换为计算机能识别和运行的格式,这个转换,是由编译器来完成的。有些语言没有编译器,但是Java是有的。

编译器转换后的文件,通常叫做二进制文件,或者可执行文件。文件内容从英文变成了字节码。字节码只有计算机能看懂,人是看不懂的,我们也不用关心,只需要保证我们编写的英文代码,能正确通过编译即可。执行的事,就交给计算机来做。

Java代码文件以.java结尾,Java可执行文件以.class结尾。

创建Java类

Java文件里面的所有代码,都必须放在Java Class里面:

public class MyFirstClass {
}

文件名必须叫做MyFirstClass.java,文件名跟类名必须保持一致。为什么Java要设计得这么严格呢?方便,让你看到文件名,就能知道类名是啥,不用去猜。

安装JDK

如何编译类文件呢?下载Java。

下载Java,就是下载JDK,Java Development Kit,里面包含了Java编译器,将MyFirstClass.java 编译为MyFirstClass.class

所谓的JRE,Java Runtime Environment,它是JDK的一部分,只能用来运行Java程序,不能用来编译。

下载地址: https://jdk.java.net/

安装后需要根据操作系统(Windows、Linux、macOS)设置环境变量JAVA_HOME和PATH。

验证安装成功:

java -version

编译Class

使用javac命令编译:

javac MyFirstClass.java

如果代码有问题,会出现报错。如果没问题,就会生成MyFirstClass.class文件。

运行HelloWorld

添加代码:

public class MyFirstClass {

    public static void main(String... args) {
        System.out.println("Hello, World!");
    }
}

重新编译,确保生成了class文件,使用java命令运行:

java MyFirstClass

运行成功,控制台会打印一句:Hello, World!

常见问题

问题1:javac HelloWorldApp,报错:

Class names, 'HelloWorldApp', are only accepted if annotation processing is explicitly requested

javac HelloWorldApp.java 编译命令javac后面应该跟文件名

问题2:java HelloWorldApp.class,报错:

Could not find or load main class HelloWorldApp.class

java HelloWorldApp 运行命令java后面应该跟类名

可以命令Help看到区别:

javac Usage: javac <options> <source files>
java Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)

在复杂应用开发时,并不会直接使用javac和java命令,而是使用IDE,Integrated Development Environment,集成开发环境,比如Eclipse、NetBeans和IntelliJ IDEA。

参考资料:

Getting Started with Java https://dev.java/learn/getting-started

标签:Java,javac,java,笔记,编译,MyFirstClass,编写,class
From: https://www.cnblogs.com/df888/p/17185826.html

相关文章

  • 03Java8日期处理
    使用now方法根据当前日期或时间创建实例对象如使用now方法创建LocalDate(年、月、日)和LocalTime(时、分、秒)等实例对象LocalTime.now()——>LocalTimenow=LocalTime.n......
  • java压缩流
    利用压缩流解压文件夹@TestpublicvoidzipInputStreamDemo()throwsException{//利用压缩流解压文件夹,注意java只识别zipFilesrc=newFile("D:/a.......
  • 【选择排序算法详解】Java/Go/Python/JS/C 不同语言实现
    【选择排序算法详解】Java/Go/Python/JS/C不同语言实现 说明选择排序(SelectionSort)是一种简单直观的排序算法。跟冒泡、插入排序一样,它将数列分为已排序和待排序两个......
  • TypeScript 与 JavaScript:你应该知道的区别
    作者:京东零售杨冰译自Radix网站的文章,原文链接:https://radixweb.com/blog/typescript-vs-javascript,原文作者:NiharRaval正在寻找经验丰富的JavaScript开发团队来将您的......
  • 在 Java 中解码 Base64 数据
    我有一个Base64编码的图像。在Java中解码它的最佳方法是什么?希望只使用SunJava6中包含的库。解答http://www.stackoverflow.ink/posts/zai-java-zhong-......
  • java -D的一些学习和使用
    背景java开发的程序有很多进行配置的方式可以通过yaml文件或者是xml文件也可以通过环境变量的方式.1.容器的话可以使用-e或者是env进行注入2.K8S的话可以通过co......
  • 推荐 7 个有用的 JavaScript 库,也许你会用的上
    推荐7个有用的JavaScript库,也许你会用的上原创2023-02-1016:52·前端达人使用这7个库,加速你的项目开发 当我们可以通过使用库轻松实现相同的结果时,为什么还要......
  • JavaSE——接口
    概述我们已经学完了抽象类,抽象类中可以用抽象方法,也可以有普通方法,构造方法,成员变量等。那么什么是接口呢?接口是更加彻底的抽象,JDK7之前,包括JDK7,接口中全部是抽象方法。接......
  • java微基准测试JMH引入报错RuntimeException: ERROR: Unable to find the resource: /
    项目引入JMH进行性能测试,完整demo业务类:packagecom.simon.benchmark;/***@Author:huzhiyang*@Date:2023/3/717:03*@Desc:*/publicclassBizService{......
  • javax 和hibernate 的NotBlank
    问题:hibernate版本在5的时候,如果你用了importjavax.validation.constraints.NotBlank;在校验的时会报错HV000030:Novalidatorcouldbefoundforconstraint'javax.......