classpath的作用、简单批处理自定义编译、第一个jar文件包的生成

classpath

首先回顾下前面学到过的编译:

把源码文件和编译之后的文件分开
http://blog.csdn.net/github_26672553/article/details/72742919

注意:我们在最后要运行me的时候是需要进入到target目录下

cd target/
java me

按理说我们是可以直接在根目录下执行:

java target/me
#按理可以这样
#运行 target目录下的me

但是这样却报错啦:错误: 找不到或无法加载主类 target.me

为了解决这个问题,就需要了解classpath
我可以看一下classpath这个环境变量(设置path环境变量,我们就可以在任何目录执行java或javac命令了)

#linux查看
echo $ClASSPATH

因为如果我们要夸文件夹执行,可以把要执行的目录加入classpath环境变量(一般不会这么干)。
一般我们采用在执行的时候多加一个参数-classpaht

java -classpath target me

这就可以在项目根目录运行target目录下的me.class文件了。

简单批处理自定义编译

接着之前的代码,我们在新建一个包news,然后创建一个类NewsService
这里写图片描述

NewsService.java代码:

package news;
public class NewsService
{
    public static void getVersion()
    {
        System.out.println("news 1.0");
    }
}

如果我们要在myname.java使用这个类,需要:

import news.*;
// 调用
NewsService.getVersion();

回顾我们之前要把src目录下的源码编译到target目录中:

javac -d target -sourcepath src src/me.java

这里写图片描述
(我们只选择编译me.java,为什么myname.java和NewsService.java也被编译了呢?这是因为me.java里调用了myname.java,myname.java调用了NewsService.java)

因为我们每次修改重新编译,都要删掉之前编译的文件。其实这一步我们可以写一个批处理脚本:

#新建
vi build
#脚本内容如下
rm target/* -fr && echo 'target dir is cleared'
javac -d target -sourcepath src src/me.java
#给build文件权限
chmod +x build
#执行这个文件
./build

jar文件包

windows中我们使用类似.net可以把需要的类打包成dll
php中可以打包成phar,java是否也可以呢?

java中叫做jar
有2种形式:打成可执行的jar;仅仅把我们的业务类库打包,供调用是引用

我们把news打包一下:

cd target/
#打包成news.jar文件
#打包news这个文件夹
jar -cf news.jar news/

执行完成,target文件夹会多一个news.jar文件
这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值