关于一个具有配置文件的 Java Project 项目 非 web 项目 在服务器上的一个便捷部署

                        用 Eclipse 写了一个可以执行的 Java Project 项目,是一个数据库性能自动测试的项目,有很多配置文件,比如数据库的 log4j.properties,日志的 log4j.properties,Spring 的 applicationContext.xml 文件,还有 iBatis 的 MySqlMapConfig.xml 等等,如果打成可运行的一个 jar 包的话,比如 How to Create an Executable File from Eclipse 中介绍的,方便是方便,但并不是可以配置的,用户如果想修改下配置文件,又要重新打包。本文介绍如何使用 Eclipse 打包,并且修改配置文件无需重新打包,一个便捷一些的可运行项目的部署方法。
        1. 新建目录 TestMysql
TestMysql 项目
        将 Java Project 下的各种配置文件拷贝到 TestMysql 目录中,然后在 TestMysql 目录中新建 lib 文件夹以存放运行包及各依赖包,新建 logs 文件夹存放日志,新建 resource 存放 iBatis 配置文件,如下图所示:
TestMysql 目录
        其中,resource 目录中新建和 Java Project 目录下 iBatis 包一样结构的目录,然后将 iBatis 配置文件考入,如下图所示:
iBatis 配置
        2. 配置日志
        可以参考《 关于服务器项目日志的一个便捷处理》,本文使用了以下方案:
log4j.appender.logServicefile=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.logServicefile.File=logs/TestMysqllog4j.appender.logServicefile.DatePattern=yyyy-MM-dd-HH'.log'log4j.appender.logServicefile.Append=truelog4j.appender.logServicefile.layout=org.apache.log4j.PatternLayoutlog4j.appender.logServicefile.layout.ConversionPattern=[%5p] [data-migrate] %d{yyyy-MM-dd HH:mm:ss}: %-4r     [%t] ( %F,%L ) - %m%n

        这样,以后生成的日志将形如以下:
日志生成情况
        3. 打 jar 包
        将项目所有依赖包考进 lib 目录,然后 Eclipse 下右击项目名 -> 点击 Export... -> 打开 Java,选中 JAR file,点击 Next 按钮 -> 将刚才新建的 lib 目录作为输出目录(如下图),点击 Finish。
打包
        然后 lib 目录形如下图:
lib 目录.jpg
        4. 编辑启动脚本
        在 TestMysql 目录下新建 run.bat 文件和 run.sh 文件,编辑批处理文件 run.bat 内容如下:
@echo off  set DIRNAME=.\if "%OS%" == "Windows_NT" set DIRNAME=%~dp0%if "%OS%" == "Windows_NT" set PROGNAME=%~nx0%set "JAVA_HOME=D:\tools\Java\jdk1.6.0_22"set JAVAC_JAR=%JAVA_HOME%\lib\tools.jarsetlocal enabledelayedexpansionset "JAVA=%JAVA_HOME%\bin\java"set OPTS=-Xms512M -Xmx1024M  -XX:+AggressiveOpts -XX:+UseParallelGC -XX:NewSize=64Mset LIBPATH=.\libset CP=%DIRNAME%;rem set MAIN=com.arcsoft.nosql.data.task.mixture.ClientFileOfCloudQueryset MAIN=com.defonds.mysql.TestMysqlrem set MAIN= com.arcsoft.nosql.data.test.MigrateMainfor /f %%i in ('dir/b %LIBPATH%\*.jar^|sort') do (set CP=!CP!%LIBPATH%\%%i;)echo ===============================================================================  echo.  echo   Engine Startup Environment  echo.  echo   JAVA: %JAVA%  echo.  echo   JAVA_OPTS: %OPTS%  echo.  echo   CLASSPATH: %CP%  echo.  echo ===============================================================================  echo.    java %OPTS% -classpath %CP% %MAIN% rem java %OPTS% -classpath %CP% %MAIN% arg1 arg2rem pauserem exit

        注意 JAVA_HOME 要和你的本地安装一致,set MAIN=com.defonds.mysql.TestMysql 换成你自己的入口类;编辑 shell 脚本内容如下:
#!/bin/shPATH="$PATH:$JAVA_HOME/bin"export PATHCLASSPATH=.for k in lib/*.jardo CLASSPATH=$CLASSPATH:$kdoneexport CLASSPATHecho $CLASSPATHjava  -Xms512m -Xmx768m -classpath "$CLASSPATH" com.defonds.mysql.TestMysql

        注意 JAVA_HOME 默认你已经写进环境变量,set MAIN=com.defonds.mysql.TestMysql 换成你自己的入库类。
        你可以根据你自己的硬件情况调整 Xms 和 Xmx 等参数。
        5. 运行项目

        Linux 下的运行情况如下:

# ps -ef | grep javaroot     2319  2318  0 13:51 pts/3    00:00:07 java -Xms512m -Xmx768m -classpath .:lib/commons-dbcp-1.4.jar:lib/commons-logging-1.1.1.jar:lib/commons-pool-1.5.5.jar:lib/hamcrest-core-1.3.jar:lib/hamcrest-library-1.3.jar:lib/ibatis-sqlmap-2.3.4.726.jar:lib/junit-4.10.jar:lib/mysql-connector-java-5.0.8-bin.jar:lib/spring-aop-3.1.1.RELEASE.jar:lib/spring-asm-3.1.1.RELEASE.jar:lib/spring-beans-3.1.1.RELEASE.jar:lib/spring-context-3.1.1.RELEASE.jar:lib/spring-context-support-3.1.1.RELEASE.jar:lib/spring-core-3.1.1.RELEASE.jar:lib/spring-expression-3.1.1.RELEASE.jar:lib/spring-jdbc-3.1.1.RELEASE.jar:lib/spring-jms-3.1.1.RELEASE.jar:lib/spring-orm-3.1.1.RELEASE.jar:lib/spring-tx-3.1.1.RELEASE.jar:lib/testmysql.jar com.defonds.mysql.TestMysql


           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值