一、在windows下使用bat文件执行java代码
文件存放截图如下:
1、如果本地没有安装jdk,可以在你的执行包中手动拷贝一份jre目录,然后在bat中如下写就可以了:
"./jre1.6.0_01/bin/java" -classpath ./lib/log4j-1.2.15.jar; zhanglang.HelloGita
如果写的类很简单,不需要额外的jar包的,就需要去掉-classpath(之所以要去掉是因为classpath是用来寻找jar包的,
如果没有额外jar包,加上-classpath,无法获取正确结果,但是会有classpath用法的提示显示出来,提示还蛮详细)
"./jre1.6.0_01/bin/java" zhanglang.HelloGita
2、如果本地安装了jdk,并配置好了环境变量,可以使用如下方式:
%JAVA_HOME%\bin\java -classpath ./lib/log4j-1.2.15.jar; zhanglang.HelloGita
当然,也可将jar包先抽出来做成一个变量,如下:
set needJars=./lib/log4j-1.2.15.jar;
%JAVA_HOME%\bin\java -classpath %needJars% zhanglang.HelloGita
其中needJars可以定义多个jar,jar之间使用;隔开
二、在Linux下使用shell执行java文件
注意:在Linux中如果没有安装jdk,我们一般使用自带的jdk。往往这是更符合的,因为不能保证客户的机子上安装了jdk,目录如下:
注意,这里的jre跟windows中的可不完全一样,这里面bin下的不再是.exe文件,而是.sh文件,所以不能直接从windows上传一个jre放上来,要上传一个Linux版本的jre
把你的类导出为一个jar包,放在lib目录下(对应下面的jason.jar)
pay:在shell中,jar包是用:分隔,而在bat中是用;分隔
test.sh内容如下:
#!/bin/bash
#Get the current path
program_dir=`dirname $0`
JAVA=jre/bin/java
JAVA_OPTS="-server -Xms512m -Xmx1500m -XX:PermSize=128M "
######## Enter the directory of program ##########
if [ `echo "$0" |grep -c "/"` -le 0 ];then
program_dir=`pwd`
else
program_dir=`cd ${program_dir};pwd`
fi
cd ${program_dir}
$JAVA $JAVA_OPTS -classpath lib/jason.jar zhanglang.HelloGita
三、在windows中使用bat会弹出命令框,比较不好看
@echo off
:1
if "%1"=="h" goto :2
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit:2
:2
set needJars=./lib/translate.jar;./lib/dom4j-1.6.1.jar;./lib/jaxen-1.1-beta-6.jar;
%JAVA_HOME%/bin/java -classpath %needJars% com.huawei.TemplateTransfer.TransferTemplateView
:2底下的就是我自己的代码