c语言 编译手动,如何使用javac手动编译web项目

本文探讨了Eclipse与Linux环境下class文件大小差异的原因,并介绍如何使用javac编译多个Java文件,包括配置资源和库路径。重点在于如何选择-O选项以优化启动时间,以及在处理Spring注解时遇到的问题和解决方案。最后,作者选择了Ant作为最终构建工具。
摘要由CSDN通过智能技术生成

问题描述

最近发现eclipse下编译的class文件和linux平台下面编译的class文件大小不一样。究其原因,是因为eclipse编译的时候应该自动带-g选项而且不带-O选项,即类增加了编译信息而又没有做编译优化。于是,想在linux下面写一个程序编译java文件,不想用ant,希望用javac简单点。

问题解决

web项目的java文件往往不止一个,一个一个的列举不现实,因此,可以用find命令生成一个list。

properties等配置文件需要一并拷贝到目标文件夹。

应该选用-O选项来编译,希望能够减少启动时间。

于是,脚本来了:

#!/bin/sh

TARGET_DIR=~/tmp/target/

SRC_DIR=~/tmp/src/main/java/

RESOURCE_DIR=~/tmp/src/main/resource/

LIB_PATH="."

LIB_DIR=[对应你的项目的lib的路径,我们这里是weblogic的lib文件夹]

rm -f ${SRC_DIR}sources.list

find $SRC_DIR  -name "*.java" -type f > ${SRC_DIR}sources.list

rm -rf $TARGET_DIR

mkdir ${TARGET_DIR}

for jar_file in `find $LIB_DIR -name "*.jar" -type f`

do

LIB_PATH="${LIB_PATH}:${jar_file}"

done

javac -d $TARGET_DIR -sourcepath ${SRC_DIR} -classpath $LIB_PATH @${SRC_DIR}sources.list

cp -r $RESOURCE_DIR $TARGET_DIR

后记:

javac好像在1.6及以前的版本不支持@java源文件列表的参数形式,这时候,我们可以采用以下命令代替。

find ${SRC_DIR} -name "*.java" -type f | xargs -I {} javac -d $TARGET_DIR -sourcepath ${SRC_DIR} -classpath $LIB_PATH

后记二:

因为Spring涉及到很多annotation的使用,所以,以上方法编译结果有问题。最后还是选用了ant来build项目。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值