java中HelloWorld原来还可以这样玩

大家可能看到HelloWorld例子是不是都觉得博主脑子是不是有问题,怎么拿这么一个弱智的问题和例子拿来讲。实际上并不是这样的,如果是这样的我相信我就没有写这篇博客意思了。因为当我第一次看到java中第一个例子HelloWorld原来还有这么多内容。自己当时也听的懵逼。当然是这样的,懵逼过后就必须要清醒,当我醒后第一反应就是写篇博客来纪念我当时懵逼的样子。当然希望下次各位不要懵逼,并且很淡定说“HelloWorld始终是HelloWorld永远是那么简单”。

这次开发java这个例子呢,采用的开发工具就是记事本就够了,当然如果你用什么Eclipse,那就没什么意思,而且你用的Eclipse用的也是很懵逼的,因为你根本就不懂得Eclipse从编译java到运行Java整个机制过程,只知道写好了,然后“Run as",那是给码农,相信大家都是想成为攻城狮而不是码农吧。成为攻城狮的第一步,先把本博客学下,just for fun 。开始吧

首先,我们先来谈下java环境变量,打开“我的电脑”--->"属性"--->"高级系统设置"--->"环境变量"

大家都很清楚,java的环境变量主要配置三个操作:第一个新建JAVA_HOME环境变量,第二个配置path,第三个配置CLASSPATH

JAVA_HOME="为你的java的JDK中bin文件夹所在的目录",在path最前面追加:"%JAVA_HOME%\bin;%JAVA_HOME%\jre" ,CLASSPATH=".

";相信大家对前面两个为什么这么应该容易了解。我相信大多数人对CLASSPATH=“."为什么只配置一个点即可。这个点的意思是表示当前目录下意思。我们都知道在java中实际上.java文件先编译成.class文件实际上最后运行的就是.class文件。CLASSPATH=“."表示在执行运行命令的时候,会在当前目录路径下去找到.class文件;可能大家还看过这样去配置CLASSPATH的。CLASSPATH=“.;./bin";这里表示就是先在当前目录下寻找相应指定的.class文件,如果没找到,再去当前目录下的bin目录中去找。

为什么要讲解这个呢?这个原理有助于理解下面我们运行java程序。

讲完环境变量的配置我们就开始来编写我们java中的第一个例子

在写java代码之前,我们首先说下一个java代码中的顶级三元素:package、import、class

可能我们在写代码的时候,不太注意这些,但是这些都是规范。所以这次这个HelloWorld的例子中也会遵循这个规范来。

第一步:先在我的桌面创建一个Demo文件夹,并且在文件夹内分别创建src和bin文件夹,大家都知道src文件夹是存放源代码的,bin主要存放编译后的.class文件。

第二步:在src目下新建一个文本文件,修改后缀名为".java"

第三步:打开终端编译

先进入src和bin所在的目录,而不要进入src目录,运行javac编译命令:

大家可能看到为什么和我们平时编译命令有些不一样,这里我们通过-d 目录 将编译好的字节码文件放到指定的目录下,这里的意思就是将编译好的字节码文件放到当前目录的bin目录文件夹下。 那么我们可以打开所在目录的bin目录来看看,原来是空的而现在是有一个带包的HelloWorld.class文件,这是因为我们在写代码时候加上了package com.mikyou.test;所以看到下图就不感到奇怪了。

编译完后就是运行了,大家都知道运行我们使用的是java命令就行,是这么直接这么简单吗?大家都知道我们在运行过程中就和.java文件没有关系,我们需要找的是编译后的.class文件,然后直接用java运行即可。

先说下-cp的意思:-cp 路径 指定类加载路径(CLASSPATH),为什么要使用-cp呢?这就得从刚开始配置环境变量说起了,就是配置环境变量的时候我们配置了一个CLASSPATH为一个点,并且我们说这个点表示在当前目录下去找.class文件的意思,然后我们当前目录是src和bin所在的目录并没有所要的.class文件,所以如果按系统环境变量中来找的话,肯定是找不到的,所以既然系统中找不到的话,那我们就通过-cp自己来指定类加载的路径。不信我们可以试试

接下来就是将我们一个HelloWorld打包成.jar文件

我们先在src和bin目录下然后进入bin,然后再将bin目录下的所有文件和目录都打包成jar

这个jar命令的意思就是将bin目录下的所有文件和目录打包(*就是表这个意思),-cvf (c是表示压缩命令,v表示显示压缩的过程信息 f表示 后面要跟上输出文件名称)实际上和Linux系统压缩文件命令很像。打包后文件放到bin目录里面的上级目录也就是bin所处的那个目录。打包完成后大家可以看到和src,bin所在的同一目录下有一个hello.jar

打包好了后,我们就要把这个jar发给客户,客户怎么去运行呢?

1、 将.jar文件放入某个盘,可直接从盘中根目录运行:假如我放在C盘的根目录下

又使用到了-cp,这个还是蛮有用的吧

另一种方法就是无论在哪种路径下,都可以运行这个hello.jar:将.jar文件放入到扩展类加载库(该库所在目录是在你的jdk目录中的jre目录下的libs文件夹内):我的是这个E:\Android\Java\jdk8.0_11\jre\lib\ext:  运行命令: java com.mikyou.test.HelloWorld

会发现无论在哪个路径下都可以运行。并且这个方法还有一点很好就是,你打开Eclispe会发现,jre中的加载jar包中有一个hello.jar,也就是我们以后可以将我们自己封装一些框架代码打包成一个jar包,然后放在该目录下,每次新建一个程序自动加载就不用每次去新建一个libs然后再去add Build Path了,很是方便。

到这里我们java中一个最简单HelloWorld就完成了,是不是没有我们想象中的那么简单。

时间: 2024-10-18 06:55:02

java中HelloWorld原来还可以这样玩的相关文章

原来css中的border还可以这样玩

原来css中的border还可以这样玩 前面的话: 在看这篇文章之前你可能会觉得border只是简单的绘制边框,看了这篇文章,我相信你也会跟我一样说一句"我靠,原来css中的border还可以这样玩".这篇文章主要是很早以前看了别人用纯CSS绘制三角形后自己的一些思路的整理,文中会介绍几种小图标的效果. 用css中的border绘制鸡蛋形状: 是的你没看错,这里是要做绘制一个类似于鸡蛋的效果. 思路:我们先用div绘制一个正方形,然后利用设置border-radius: 50%;,这样

css中的border还可以这样玩

在看这篇文章之前你可能会觉得border只是简单的绘制边框,看了这篇文章,我相信你也会跟我一样说一句"我靠,原来css中的border还可以这样玩".这篇文章主要是很早以前看了别人用纯CSS绘制三角形后自己的一些思路的整理,文中会介绍几种小图标的效果. 用css中的border绘制鸡蛋形状: 是的你没看错,这里是要做绘制一个类似于鸡蛋的效果. 思路:我们先用div绘制一个正方形,然后利用设置border-radius: 50%;,这样我们就可以得到一个圆形的效果,代码如下: html代

深入理解java中HelloWorld的执行流程

HelloWorld.java是我们学习java的第一个程序,简单的再也不能简单了,可是里面的原理以及执行流程大家都知道吗?最近在复习java知识,特地钻研了一番分享给大家! 贴出HelloWorld的代码如下: public class HelloWorld { public static void main(String[] args) { String s ; s = “Hello World!”; //定义字符串s System.out.println(s); } } 分析内存图: He

Java中JNI的使用详解第一篇:HelloWorld

今天开始研究JNI技术,首先还是老套路,输出一个HelloWorld:具体流程如下:在Java中定义一个方法,在C++中实现这个方法,在方法内部输出"Hello World",然后再回到Java中进行调用.分为以下步骤: 第一步:在Eclipse中建立一个类:JNIDemo 1 package com.jni.demo; 2 public class JNIDemo { 3 //定义一个本地方法 4 public native void sayHello(); 5 public sta

浅析Java中的final关键字

原文出处: 海子 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法.下面是本文的目录大纲: 一.final关键字的基本用法 二.深入理解final关键字 若有不正之处,请多多谅解并欢迎指正. 一.final关键字的基本用法 在Java中,final关键字可以用来修饰类.方法和变量(包括成员变量和局部变量).下面就从这三个方面来了解一下final关键字

转载:浅析Java中的final关键字

文章转自:http://www.cnblogs.com/dolphin0520/p/3736238.html 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法.下面是本文的目录大纲: 一.final关键字的基本用法 二.深入理解final关键字 若有不正之处,请多多谅解并欢迎指正. 请尊重作者劳动成果,转载请标明原文链接: http://www.cn

java中native方法的使用

native关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件,而是在用其他语言(如C和C++)实现的文件中.Java语言本身不能对操作系统底层进行访问和操作,但是可以通过JNI接口调用其他语言来实现对底层的访问. JNI是Java本机接口(JavaNative Interface),是一个本机编程接口,它是Java软件开发工具箱(javaSoftware Development Kit,SDK)的一部分.JNI允许Java代码使用以其他语言编写的代码和代码库.Invocati

菜鸟笔记之java中方法使用

N!!!java中无参无返回值方法的使用 1,定义方法 eg: public void show(){ System.out.println("HelloWorld!") } ---方法要在一对大括号中实现特定的操作 ---命名规范,第一个单词字母小写,其他单词首字母大写 ---调用方法,先创建对象,然后通过 对象名.方法名()来操作; eg:public class HelloWorld{ public static void main(String[] args){ HelloWo

慕课网-Java入门第一季-6-7 使用 Arrays 类操作 Java 中的数组

来源:http://www.imooc.com/code/1556 Arrays 类是 Java 中提供的一个工具类,在 java.util 包中.该类中包含了一些方法用来直接操作数组,比如可直接实现数组的排序.搜索等(关于类和方法的相关内容在后面的章节中会详细讲解滴~~). Arrays 中常用的方法: 1. 排序 语法:  可以使用 sort( ) 方法实现对数组的排序,只要将数组名放在 sort( ) 方法的括号中,就可以完成对该数组的排序(按升序排列),如: 运行结果: 2. 将数组转换