关于一个具有配置文件的 Java Project 项目(非 web 项目)在服务器上的一个便捷部署
2013-11-11 15:12
1446 查看
用 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
将 Java Project 下的各种配置文件拷贝到 TestMysql 目录中,然后在 TestMysql 目录中新建 lib 文件夹以存放运行包及各依赖包,新建 logs 文件夹存放日志,新建 resource 存放 iBatis 配置文件,如下图所示:
其中,resource 目录中新建和 Java Project 目录下 iBatis 包一样结构的目录,然后将 iBatis 配置文件考入,如下图所示:
2. 配置日志
可以参考《关于服务器项目日志的一个便捷处理》,本文使用了以下方案:
这样,以后生成的日志将形如以下:
3. 打 jar 包
将项目所有依赖包考进 lib 目录,然后 Eclipse 下右击项目名 -> 点击 Export... -> 打开 Java,选中 JAR file,点击 Next 按钮 -> 将刚才新建的 lib 目录作为输出目录(如下图),点击 Finish。
然后 lib 目录形如下图:
4. 编辑启动脚本
在 TestMysql 目录下新建 run.bat 文件和 run.sh 文件,编辑批处理文件 run.bat 内容如下:
注意 JAVA_HOME 要和你的本地安装一致,set MAIN=com.defonds.mysql.TestMysql 换成你自己的入口类;编辑 shell 脚本内容如下:
注意 JAVA_HOME 默认你已经写进环境变量,set MAIN=com.defonds.mysql.TestMysql 换成你自己的入库类。
你可以根据你自己的硬件情况调整 Xms 和 Xmx 等参数。
5. 运行项目
Linux 下的运行情况如下:
How to Create an Executable File from Eclipse 中介绍的,方便是方便,但并不是可以配置的,用户如果想修改下配置文件,又要重新打包。本文介绍如何使用 Eclipse 打包,并且修改配置文件无需重新打包,一个便捷一些的可运行项目的部署方法。
1. 新建目录 TestMysql
将 Java Project 下的各种配置文件拷贝到 TestMysql 目录中,然后在 TestMysql 目录中新建 lib 文件夹以存放运行包及各依赖包,新建 logs 文件夹存放日志,新建 resource 存放 iBatis 配置文件,如下图所示:
其中,resource 目录中新建和 Java Project 目录下 iBatis 包一样结构的目录,然后将 iBatis 配置文件考入,如下图所示:
2. 配置日志
可以参考《关于服务器项目日志的一个便捷处理》,本文使用了以下方案:
log4j.appender.logServicefile=org.apache.log4j.DailyRollingFileAppender log4j.appender.logServicefile.File=logs/TestMysql log4j.appender.logServicefile.DatePattern=yyyy-MM-dd-HH'.log' log4j.appender.logServicefile.Append=true log4j.appender.logServicefile.layout=org.apache.log4j.PatternLayout log4j.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 目录形如下图:
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.jar setlocal enabledelayedexpansion set "JAVA=%JAVA_HOME%\bin\java" set OPTS=-Xms512M -Xmx1024M -XX:+AggressiveOpts -XX:+UseParallelGC -XX:NewSize=64M set LIBPATH=.\lib set CP=%DIRNAME%; rem set MAIN=com.arcsoft.nosql.data.task.mixture.ClientFileOfCloudQuery set MAIN=com.defonds.mysql.TestMysql rem set MAIN= com.arcsoft.nosql.data.test.MigrateMain for /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 arg2 rem pause rem exit
注意 JAVA_HOME 要和你的本地安装一致,set MAIN=com.defonds.mysql.TestMysql 换成你自己的入口类;编辑 shell 脚本内容如下:
#!/bin/sh PATH="$PATH:$JAVA_HOME/bin" export PATH CLASSPATH=. for k in lib/*.jar do CLASSPATH=$CLASSPATH:$k done export CLASSPATH echo $CLASSPATH java -Xms512m -Xmx768m -classpath "$CLASSPATH" com.defonds.mysql.TestMysql
注意 JAVA_HOME 默认你已经写进环境变量,set MAIN=com.defonds.mysql.TestMysql 换成你自己的入库类。
你可以根据你自己的硬件情况调整 Xms 和 Xmx 等参数。
5. 运行项目
Linux 下的运行情况如下:
# ps -ef | grep java root 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
相关文章推荐
- 关于一个具有配置文件的 Java Project 项目(非 web 项目)在服务器上的一个便捷部署
- 关于Windows Server 服务器 安装tomcat部署Java Web 项目的问题
- 关于利用Tomcat创建一个Java Web项目的部署
- 关于MyEclipse web项目下关联部署java project 和项目外的jar包
- JavaWeb项目通过灵活配置数据源使项目部署更加便捷
- windows下关于使用eclipse开发web服务器后台项目完整配置(jsp+javabean+servlet)
- Myeclipse中web项目部署以后jsp的java文件找不到问题(Tomcat配置serverlocations)
- javaWeb开发中关于eclipse等ide重新部署或重启项目等原因造成上传文件丢失问题解决方案
- ruby 项目部署到服务器时,配置文件(jss,css..)改变,需要执行一个命令
- 一个java web项目classpath配置文件加载类
- 关于使用nat123软件实现外网访问内网的部署在Tomcat服务器中的Java Web项目
- eclipse中web项目部署以后jsp的java文件找不到问题(Tomcat配置serverlocations)
- log4j无日志生成? 我将一个web项目部署在tomcat server.xml配置文件中,当我启动tomcat是无日志输出。
- eclipse配置tomcat,并部署一个Java web项目到tomcat上
- 非web java项目部署到linux总结(非打包成jar,配置文件可以随时修改)
- eclipse中web项目部署以后jsp的java文件找不到问题(Tomcat配置serverlocations)
- 一个关于javaweb项目名处出现红叉,而项目下的目录和文件没有红叉的问题
- java 一个项目访问另一个Web项目的配置文件
- Javaweb上传图片或文件到服务器,Tomcat服务器重新部署项目,会删除原来上传的文件的问题
- 创建一个java项目并部署到weblogic服务器