在linux和windows下动态设置classpath调用java类方法
一. windows环境:
采用批处理来实现
包括两个文件:
1. setCp.bat
2. start.bat
setCp.bat文件只有一句话:
set cp=%cp%;%1
start.bat 内容如下:
@echo off
set cp=config
for %%i in (lib\*.jar) do call setCp.bat %%i
set cp=%cp%;
echo %cp%;
java -cp %cp% com.test.Test
pause
部署目录在 D:\mytest
假设目录结构如下:
D:\mytest
mytest
bin
setCp.bat
test.bat
lib
test.jar
执行: test.bat 即可 调用 com.test.Test的类的方法
二. linux环境:
采用shell脚本来实现
假设shell 脚本文件名为 test.sh
#
WORK_HOME=/opt/mytest
lib='.'
for jar in `ls $WORK_HOME/lib/*.jar`
do
lib=$lib:$jar
done
export CLASSPATH=$CLASSPATH:$lib
java com.test.Test 1>>$WORK_HOME/logs/test_stdout.log 2>>$WORK_HOME/logs/test_stderr.log &
假设部署目录为/opt/mytest
/opt/mytest
目录下有如下目录结构:
bin
test.sh
lib
test.lib
logs
test_stdout.log
test_stderr.log
注意: test.sh 需要执行权限
chmod +x test.sh 即可
进入shell目录,执行 ./test.sh即可
测试类:
package com.test;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("hello world!");
}
}
相关资源下载(包括文档和例子) : http://download.csdn.net/detail/5iasp/4785353