使用javac和java命令编译和执行程序,学习隐藏在IDE背后的知识

      学习java的程序员,没有不知道Eclipse的,这个强大的IDE极大的提高我们的开发效率。编写好代码后,我只需要简单的run as就能运行程序了。这种方式很简单快捷,但是让我们对于IDE的依赖更加严重了,甚至不能离开IDE了,以至于很多程序员在linux都不会运行自己的java程序了。这里简单介绍下JDK的2个命令javac和java,来手动编译和运行我们的程序。

      首先我们用Eclipse建立一个java工程test,该项目中使用spring框架的ioc特性,需要引入spring的依赖包。目录结构图如下:

使用javac和java命令编译和执行程序,学习隐藏在IDE背后的知识_第1张图片

使用javac和java命令编译和执行程序,学习隐藏在IDE背后的知识_第2张图片



src:放置我们编写的java源代码

classes:放置编译后生成的class文件

spring3.1.2:放置需要使用的spring依赖包

现在我们来通过javac和java命令,来编译和运行我们的test项目。

1.删除eclipse自动编译生成的class文件

  在eclipse下运行Test.java的时候,eclipse会将spring.xml拷贝到classes目录下,并将src下面的源代码编译后存放到classes文件夹下。现在我们删除eclipse编译后的class文件,保留spring.xml。因为使用javac命令,不能直接将src文件夹下的spring.xml拷贝到classes/下。这个过程可以借助操作系统提供的命令来完成文件拷贝,这里就不研究了。
使用javac和java命令编译和执行程序,学习隐藏在IDE背后的知识_第3张图片

2.使用javac命令

  在windows下使用cmd,切换到test项目根目录下:

为了能够在根目录下使用javac和java命令,我们需要配置环境变量path,将%JDK_HOME%/bin/目下加进来。

javac -classpath spring3.1.2/commons-logging-1.1.1.jar;spring3.1.2/org.springframework.asm-3.1.2.RELEASE.jar;spring3.1.2/org.springframework.beans-3.1.2.RELEASE.jar;spring3.1.2/org.springframework.context-3.1.2.RELEASE.jar;spring3.1.2/org.springframework.core-3.1.2.RELEASE.jar;spring3.1.2/org.springframework.expression-3.1.2.RELEASE.jar; -encoding UTF-8 -d ./classes/ src/net/aty/demo/Test.java  src/net/aty/demo/HelloWorld.java
-classpath:指定需要依赖的第三方jar或者class文件,我们就是在这里指定了依赖的spring包。这里不需要指定jre的class。

-encoding:指定我们源文件的编码格式,如果没有设置就是按照操作系统平台默认的编码格式。一般来说java项目都是UTF-8编码格式。

-d:指定编译后class文件存放的位置。这里我们放在了classes/下,eclipse编译后生成的class文件,就是放在这里的。

最后是我们需要编译的java源文件位置,这里文件比较少,我们直接列在了命令行。执行了上述命令,我们就完成了java源文件的编译。

使用javac和java命令编译和执行程序,学习隐藏在IDE背后的知识_第4张图片



3.使用java命令

运行java程序的时候,也需要-classpath知道需要的class文件位置。
java -classpath  ./classes/;spring3.1.2/commons-logging-1.1.1.jar;spring3.1.2/org.springframework.asm-3.1.2.RELEASE.jar;spring3.1.2/org.springframework.beans-3.1.2.RELEASE.jar;spring3.1.2/org.springframework.context-3.1.2.RELEASE.jar;spring3.1.2/org.springframework.core-3.1.2.RELEASE.jar;spring3.1.2/org.springframework.expression-3.1.2.RELEASE.jar; net.aty.demo.Test
net.aty.demo.Test  改成net/aty/demo/Test也是可以的。注意:Test不能加后缀名。
使用javac和java命令编译和执行程序,学习隐藏在IDE背后的知识_第5张图片


你可能感兴趣的:(java)