不用ide开发java项目 [转自新浪博客]

来源:互联网 发布:淘宝限时打折要钱吗 编辑:程序博客网 时间:2024/06/05 07:59

java

(2015-07-01 20:25:26)
转载
标签: 

java

 

不用ide编译

 

javac

 

java命令行

分类: java

- 不用ide开发项目?听着很高端大气的样子啊。不过,不用ide用什么呢?
- 用javac/java命令啊。
- 这不明显是折腾自己吗?!

 

相信上面的场景大家都见过或听过,也相信有很多使用java一段时间后的人会偶然冒出一个想法————
平时开发时用惯了ide,其实却对java的编译过程一无所知,我能不能不用ide来开发?

 

想着想着就试了。笔者也是其中一员哦。
笔者假设各位已安装好jdk并配置好环境变量了。笔者的jdk版本是1.7。

新建一个文件夹来做实验吧。笔者建的是E:/dev-code/java/noide。以后就在noide文件夹下做实验了哦。

对文件夹名字的要求有二:
 1) 文件夹路径中不要有空格;
 2) 文件夹路径中不要有中文/日文/韩文等。
接下来,在noide文件夹下新建src文件夹,此文件夹将保存我们的java代码。在src下面建立文件夹层次为\test\billy\jee\noide\testtest\,在其下建立NoIDETest.java,内容为:
// NoIDETest.java文件开始
package test.billy.jee.noide.testtest;

public class NoIDETest{
 
 public static void main(String[] args){
  System.out.println("Hello, javac!");    
 }
}
// NoIDETest.java文件结束

 

· 最简单的编译运行
按windows+R打开运行对话框,输入cmd打开命令行窗口,输入e:并回车,然后输入命令cd dev-code\java\noide进入源文件文件夹,然后输入
javac src\test\billy\jee\noide\testtest\NoIDETest.java
会在NoIDETest.java文件夹下生成一个NoIDETest.class文件,再次输入命令cd src先进入src文件夹下,接着输入
java test.billy.jee.noide.testtest.NoIDETest

就能看到输出结果Hello, javac!

看,简单吧。可是我们并不总是希望(其实是“总是不希望”)生成的class文件和java文件在一起。行,那也能办。

 

· 在指定位置生成class文件
正常情况下我们不希望生成的class文件和java源文件在一起,这时候可以指定class文件的位置,使用-d选项就可以做到。
在NoIDETest文件夹下新建一个classes文件夹(以后生成的class文件就在这里了。),
同样输入e:并回车,然后输入命令

cd dev-code\java\noide

进入源文件文件夹,再输入
javac -d classes src\test\billy\jee\noide\testtest\NoIDETest.java
接着不要停,继续输入命令
cd classes以进入classes文件夹,再次输入
java test.billy.jee.noide.testtest.NoIDETest

也能看到输出结果Hello, javac!

也能成,不过这只是一个类的使用,下面我们演示“高级”一点的,不用一个类,改用——两个类,哈哈。

 

· 一个类调用另一个类
单个类编译明显没有意思,我们让它调用另一个类。接下来我们要做的就是建另外一个类,
同样进入NoIDETest跳到noide的src目录,然后依次建立com\billy\jee\noide\bean\文件夹[1],然后新建一个User.java文件,内容为
// User.java文件开始
package com.billy.jee.noide.bean;

public class User{
 public Integer id;
 public String name;
 
 public String toString(){
  return "User [id="+id+",name="+name+"]";
 }
}
// User.java文件结束
User类是一个很简单的类,只有两个public属性和一个toString方法(属性用public修饰是因为我不想写set/get了),接着修改我们的NoIDETest.java
// NoIDETest.java文件开始
package test.billy.jee.noide.testtest;

import com.billy.jee.noide.bean.*;

public class NoIDETest{
 
 public static void main(String[] args){
  System.out.println("Hello, javac!");
  
  User user = new User();
  user.id = 1;
  user.name = "Billy";
  
  System.out.println(user); 
 }
 
}
// NoIDETest.java文件结束
下面就要开始我们的编译工作了。
因为在NoIDETest类中使用了User类,所以我们得先编译User类,再编译NoIDETest类。
在noide目录下输入命令
javac -d classes src\com\billy\jee\noide\testtest\User.java
即会将User.class生成在noide目录下的classes目录的相应位置,然后编译NoIDETest.java,不过这次得指定User.class的位置,输入命令
javac -d classes -cp classes src\test\billy\jee\noide\testtest\NoIDETest.java
此命令中有一个选项-cp(即-classpath)表示要指定依赖类的位置,
然后 cd classes 进入classes目录下,输入命令
java test.billy.jee.noide.testtest.NoIDETest
就能看到如下结果:
Hello, javac!
User [id=1,name=Billy]

 

功能是实现了,但每次修改类文件再输入命令也太蛋疼了吧,万一我的类文件很多呢,万一包名忘记引入了呢,万一书写一直有误呢……这些问题我们会接下来会慢慢解决,我们的目的不是抛弃ide,而是能在万一没有ide的时候不至于傻脸,仅此而已[2]。
文档就此结束了。欢迎指正~~


说明:
[1]:这个包和上个包的区别在于开头的com和test,所有的核心文件都在com下,测试用的类在test下,养成规范比较好。
[2]:不对,还能显示我们技术高超,哈哈。

0 0