您的位置:首页 > 运维架构 > Linux

【linux 学习】vim编译运行java工程HelloWord(linux mint)

2017-10-28 16:55 609 查看
首先建立java的目录结构,按照eclipse那种管理方式:

zsl@zsl-pc ~/Project/helloword $ tree
.
├── bin
│   ├── dosth
│   └── hello
├── lib
└── src
├── dosth
│   └── Say.java
└── hello
└── Hello.java

7 directories, 2 files


bin 存放编译的 class 文件

src 存放所有的 java 文件

lib  存放所有的第三方 jar 包


Say.java

package dosth;
public class Say{
public void say(){
System.out.println("helloword!");
}
}


Hello.java

package hello;
import dosth.Say;
public class Hello{
public static void main(String arg[]){
Say say = new Say();
say.say();
System.out.println("hello!!");
}
}


【javac编译】

zsl@zsl-pc ~/Project/helloword $ javac -cp  lib:bin -Djava.ext.dirs=lib -d bin src/hello/*
src/hello/Hello.java:2: 错误: 程序包dosth不存在
import dosth.Say;
^
src/hello/Hello.java:5: 错误: 找不到符号
Say say = new Say();
^
符号:   类 Say
位置: 类 Hello
src/hello/Hello.java:5: 错误: 找不到符号
Say say = new Say();
^
符号:   类 Say
位置: 类 Hello
3 个错误
zsl@zsl-pc ~/Project/helloword $ javac -cp  lib:bin -Djava.ext.dirs=lib -d bin src/dosth/*
zsl@zsl-pc ~/Project/helloword $ javac -cp  lib:bin -Djava.ext.dirs=lib -d bin src/hello/*


第一次编译出错,是因为Say类还未加载。

使用的系统是 Ubuntu ,目录之间使用的是 :冒号隔开,如果是 windows ,替换为 ; 分号

【 -cp lib:bin 】编译过程中需要引入 class 所在的文件夹的路径

【-Djava.ext.dirs=lib】引入的第三方 jar 包存放的目录,如有引用第三方 jar 包编译时会通过此参数到相应的路径下查找

【-d bin src/hello/】指的是把【src/hello/】编译好放到【bin】下会自动匹配到对应目录下

编译后的目录结构:

.
├── bin
│   ├── dosth
│   │   └── Say.class
│   └── hello
│       └── Hello.class
├── lib
└── src
├── dosth
│   └── Say.java
└── hello
└── Hello.java


多了两个class

【java运行】

zsl@zsl-pc ~/Project/helloword $ java -cp bin -Djava.ext.dirs=lib hello.Hello


【 -cp lib:bin 】编译过程中需要引入 class 所在的文件夹的路径

【-Djava.ext.dirs=lib】引入的第三方 jar 包存放的目录,如有引用第三方 jar 包编译时会通过此参数到相应的路径下查找

【hello.Hello】要写全报名。

【注意】此处的许多地方和路径有关,自行调整
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: