您的位置:网站首页 > Java软件 > 正文

Java的第一个应用程序

类别:Java软件 日期:2022-3-15 14:41:00 人气: 来源:

  我和坐台女的那些事Hello World 中文意思是『你好,世界』。因为 The C Programming Language 中使用它作为第一个演示程序,在编程学习中非常著名,所以后来的程序员在学习编程或进行设备调试时延续了这一习惯。我们也不例外。因为这段代码相对简单, 但是知识点也足够新手学习享用。

  直接上代码(截图和代码都会出现,截图是为了更好地看, 代码是为了更好的 copy 和复用 ):

  从我们编写第一个程序开始, 就需要注意一些 Java 的规法和约定。并且还有 Java 的语法结构。

  class Hello: 代表着定义个“类”, 类名叫做:“Hello”,Java是个面向对象的语言。而类是面向对象的定义规则, 一个类就是一个对象。除了 Java 的基础类型, 其他的都是对象类型。

  System.out:是系统的输出文件。输出一串内容到控制台。初学者必须要接触的一个概念, 控制台。

  在前面的章节中我们分析了 Java 的运行机制,知道想运行一个 Java 程序, 需要先编译成 Java 虚拟机(JVM)能够识别的字节码。 而 Java 的编译就是使用命令javac

  因为我这系统默认是GBK, 而我选用的是 UTF-8。虽然不应该这么早的就接触编码集, 但是还是要说一句, 以后的开发为了统一编码统一采用 UTF-8 的编码集进行开发。当然你也可以在编写代码的时候, 文件使用 GBK 国标码也可以使用。修改文件的编码格式:GB 2312

  需要注意的是各个编码集不通用, 你中间出现中文将会出现乱码。但是换到初始代码,又会解码正常。这个时候不使用指定编码集也可以编译成功。 重新执行 javac Hello.java 发现编译通过。这里我们还是使用 utf-8 进行编写源代码, 重新恢复过来。学习技术的过程就是一个不断重复尝试, 不仅要写正确的代码, 也要能写错误的代码。这样你才能知道有些错误是怎么产生的, 怎么避免它。知道它能做, 也知道它不能做。

  可以看到编译之后的Hello.class现在开始这个文件就是能够在 Java 虚拟机中使用了。暂时可以把 Java 虚拟机当作是一个翻译官。你不会英语, 你请了一个翻译官。 你说了你好, 翻译官给你翻译成 Hello。这样你不需要懂得英语也能给一个会英语的交流。你能与多少国家的人交流取决于翻译官会多少国家的语言。这也就是说你要想给一个会英语的交流没有翻译官你们就沟通不了。

  编译之后, 也就来到了我们运行程序的步骤。 如果运行呢? Java 里面使用 java 命令进行运行。

  这里就可以看到我们运行之后的效果了。 第一个 Java 程序跑起来了。 虽然是很小的一个案例。但也很有成就感。

  这里需要注意的是, 运行命令中的类名是严格遵守区分大小写的规则。所以这里只能使用 Hello, 而不能使用 hello 或者其他的大小写不同的类名称。

  针对 javac 命令。 我们之前说过, 这个命令会有很多的选项可以配置。一般情况下 javac 和 java 相对出现。这里进行编译 - 运行的方式进行各种参数举例。

  我们演示过一个选项 -encoding 它的作用是指定源文件使用的字符编码,也就是我们常说的字符集。

  这样我们指定了对应的 class 文件的目录。现在我们的代码还没有指定一个 package,如果指定一个 package 之后加入 -d 除了生成指定径之外,还会生成对应的 package 包名对应的目录。

  这里只是了解,后续会单独针对 package 包进行单独详细说明。循环渐进的学习, 更容易理解也更容易学习。

  classpath 直接翻译出来, 就是 class path 类的径,对于任何想在系统中直接使用的径文件,都可以通过配置系统的变量进行全局直接使用。classpath 的作用就是告诉编译器 Java 生成的 .class 文件从哪里去找。

  这里 javac 和 java 命令都包含对应的选项。代表的含义相同,都是查找 .class 文件, 但是在编译的时候,又有些许不同。下面的例子具体演示。

  在 Java 1.5 之前, 没有配置默认的 classpath 值。所以需要指定 classpath 的变量, 并且需要使用 . 来指定当前目录。

  从当前类中查找 class 文件, 如果当前文件中没有就从 Java 的安装文件中的 lib 。%JAVA_HOME% 是 Java 的安装 JDK 的根目录。在 Windows 下使用分号 “;” 定义多个不同的目录, 在 *nux 体系下使用冒号 “:” 进行区分多个不同的目录。

  这个时候, 如果还使用 java Hello 进行执行代码就无法执行成功因为当前目录已经没有了 Hello.class 的字节码文件。

  既然是径, 当然也就有相对径和绝对径, 并且两种方式都可以使用。的使用相对径的方式进行调试, 下面我们使用绝对径进行调试:

  我们修改代码, 并新建一个文件 My.java 代码很简单,定义了一个方法,如果不理解的话, 下面的内容可以直接忽略,不用再往下看,先去了解基本的语法之后, 再返回来在进行学习,这种方式更加快速, 不容易零基础入门到放弃。

  我们在学习的时候, 故意制造一些难度。先从简单的, 直接编译 Hello.java 。先删除 target 文件, 继续进行测试。

  查看目录树, 发现只编译了 Hello.java 源文件, 但是却把对应的 My.java 也进行了关联编译。这是因为在编译的时候, 没有指定 classpath 进行了全编译的过程。如果不想编译 My.java 可以指定 My.class 文件就可以了。

  删除 target 。继续测试。编译 My.java 这里指定新的目录, 把这两个源码编译到不同的目录中。

  指定之后, 可以查看 target/classes2 的目录中只有我们编译的 Hello.class 字节码文件。是我们想要的效果。

  然后运行这个程序,因为这个在不同的目录, 就需要用到多个目录进行关联,当前是 Windows 所以使用分号:“;” 进行区分。

  你也可以尝试一下不加引号的错误效果, 这里不再给出。 可以自行尝试, 多尝试失败的情况。 也能帮你理清楚正确的思。

  思考一下 Eclipse 和 Idea 这些开发工具在进行运行代码的时候都是怎么运行的。 其实最终还都是这两个命令。

  

0
0
0
0
0
0
0
0
下一篇:没有资料

网友评论 ()条 查看

姓名: 验证码: 看不清楚,换一个

推荐文章更多

热门图文更多

最新文章更多

关于联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助

郑重声明:本站资源来源网络 如果侵犯了你的利益请联系站长删除

CopyRight 2010-2012 技术支持 FXT All Rights Reserved