自己打包jdk到j2ee服务器中,只要用jboss、tomcat等免费服务器的同事们,就会碰到这样的问题。
现在贴下自己总结的给大家分享:以jboss为例
第一步: 需要把jdk目录拷贝到jboss目录中比如起名叫jdk1.5.0_06
目录结构如下:
jboss-4.0.3SP1----| ..bin
| ..client
| ..jdk1.5.0_06
| ..lib
| ..server
| ..docs
注意:这里是jdk而不是jre各位同仁注意了
第二步:修改run.bat文件
这里我说下自己的实现方式、一般开发自己都配置 JAVA_HOME 的但是希望给客户的时候直接打包好。但是又不希望修改用户服务器的环境(或者服务器上存在别的 j2ee服务器以免冲突)
我这里实现是 判断用户机器是否存在 JAVA_HOME 环境变量,如果存在则直接使用客户机上的环境(故本配置十分灵活)
修改run.bat地方: 大家找到 在 :FOUND_RUN_JAR 和 :ADD_TOOLS 之间的代码
原来为如下:
if not "%JAVA_HOME%" == "" goto ADD_TOOLS set JAVA=java echo JAVA_HOME is not set. Unexpected results may occur. echo Set JAVA_HOME to the directory of your local JDK to avoid this message. goto SKIP_TOOLS
说明:原来是判断机器是否存在%JAVA_HOME%变量 如果存在则执行 ADD_TOOLS 往下执行,如果不存在 则执行SKIP_TOOLS 跳出命令行 打印出echo JAVA_HOME is not set. Unexpected results may occur.
echo Set JAVA_HOME to the directory of your local JDK to avoid this message. 信息,所以大家看明白的话 继续。。。。
现修改为如下
if "%JAVA_HOME%" == "" goto CONTINUE goto ADD_TOOLS :CONTINUE echo Could not locate %JAVA_HOME% and set %JAVA_HOME%=..\jdk1.5.0.06 set JAVA_HOME=..\jdk1.5.0_06
说明:现在改为先判断机器是否存在%JAVA_HOME%如果不存在则执行CONTINUE 这里本人把JAVA_HOME设置为针对当前dir的相对路径 即第一步中大家拷贝的jdk到jboss中的目录 set JAVA_HOME=..\jdk1.5.0_06
如果存在java_home的话 则继续执行ADD_TOOLS 往下执行 goto ADD_TOOLS,所以这里即使服务器没有配置环境变量照样可以使用jboss中自己拷贝的jdk了。
小需求:如果碰到客户服务器装有别的j2ee服务程序,但是你自己的工程和机器本身的环境不兼容。这里修改run.bat可固定设置为使用自己的jdk。
if "%JAVA_HOME%" == "" goto CONTINUE set JAVA_HOME=..\jdk1.5.0_06 goto ADD_TOOLS :CONTINUE echo Could not locate %JAVA_HOME% and set %JAVA_HOME%=..\jdk1.5.0.06 set JAVA_HOME=..\jdk1.5.0_06
说明:即无论如何都把JAVA_HOME环境设置为自己的jdk。这样也不失为一个万全之策。。。
呵呵。就这里吧。无奈水平有限,有同仁看不明白的话。可以发email给本人。。。 (闲暇之余回复哦)