classpath的作用、简单批处理自定义编译、第一个jar文件包的生成
来源:互联网 发布:怎样卸载windows游戏 编辑:程序博客网 时间:2024/06/05 23:49
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
文件
- classpath的作用、简单批处理自定义编译、第一个jar文件包的生成
- spring 个各jar包的作用
- 通过maven生成自定义的jar包
- 编译生成protobuf的jar包
- jar包的作用
- jar包的作用
- jar包的作用
- Android .classpath文件的作用
- Android .classpath文件的作用
- 如何生成可执行的jar包文件
- 如何生成可执行的jar包文件
- 如何生成可执行的jar包文件
- hadoop 增加classpath的jar包
- JAR包引用其它JAR包的classpath问题
- 编译Java文件并生成jar包
- 使用Maven管理依赖JAR文件,自定义项目布局,利用ANT生成不同的发布包
- hadoop jar运行hbase相关jar包的classpath问题
- Hibernate jar包的作用
- python 入门
- Android ORM 框架:GreenDao 使用详解(基础篇)
- MySQL查询的性能优化
- git学习
- Selenium IDE以及插件Power Debugger的下载安装
- classpath的作用、简单批处理自定义编译、第一个jar文件包的生成
- 解决form撑大表格的问题
- 简单的混音算法
- 词典加载及简要分词过程
- Kotlin初探:用Kotlin实现Android的ListView列表
- iOS在CAAnimationDelegate代理方法animationDidStop中区分是哪个动画
- Unity截图
- Python 元组(Tuple)操作详解
- HN2015集训 月宫的符卡序列