java以及javac两个命令的使用

进入CentOS系统,在一个java的目录下,有两个目录,src与classes,分别为源代码与编译之后的类文件存放的目录。


上面在src目录下,有eu/vandertil/jerasure与eu/vandertil/jerasure/jni/两个包。而eu/vandertil/jerasure/jni/包里6个类,其中Main.java要依赖Galois.java类,其他5个类相互独立,无依赖关系。

现在当前路径为src和classes的上一层目录,对源码进行编译:

javac -d classes 
src/eu/vandertil/jerasure/jni/Cauchy.java 
src/eu/vandertil/jerasure/jni/Galois.java 
src/eu/vandertil/jerasure/jni/Jerasure.java 
src/eu/vandertil/jerasure/jni/Liberation.java 
src/eu/vandertil/jerasure/jni/ReedSolomon.java

一次可以指定多个类,在Linux系统中,各个类之间要用空格隔开。上次-d参数表示,编译的目标路径。

现在要进行编译Main.java类,由于Main.java依赖Galois.java类,所以我们要指定依赖路径:

javac -d classes -cp classes src/eu/vandertil/jerasure/jni/Main.java

上面-cp是-classpath的简写,指明此次编译需要用到的依赖类的路径。下面查看classes的目录结构:


可以看到,上面也一次是按包组织的树形文件目录。

现在要运行Main类。

进入到classes目录:


可以看到,指定具体的类时,使用路径方式和使用包方式均能正确运行程序。

但进入eu后,相应的运行则会报错。

由此可知,java运行时,必须指定报名,为了翻遍找到类,运行命令的当前目录最好为首层包的上一层目录。

但编译时使用javac好像没有严格的限制,只要更具当前路径进一步找到要编译的类则可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值