Jdk,Ant,tomcat不设置环境变量,在启动程序中设置运行项目

最近做的一个项目,要求在客户电脑上未安装jdk,tomcat,ant等程序,没有环境变量支持来运行项目。那就考虑将这些软件使用免安装版和项目一起打包,客户可能不懂设置环境变量,那就将环境变量提前在这些软件中设置好,具体步骤:

1、在tomcat的根目录下建立一个叫做JDK的文件夹,将免安装的jdk放在该文件夹下(我使用的是1.8免安装,jdk和jre合二为一的版本),然后在tomcat的bin下的startup.bat中设置JAVA_HOME,具体位置:

如此,实际就是给环境变量中增加了jdk,可以在cmd命令下进行验证。

注意:jdk必须放在tomcat下,如图:

因为我的项目运行是调用了一个exe程序来执行ant命令(即执行的一个build.xml),那我就可以在这个exe程序中继续去添加环境变量中的jdk,ant。具体:SET PATH=%PATH%;%cd%\Project\ant\bin;%cd%\Project\tomcat\JDK\bin;在此处,%cd%是这个exe的当前路径,可以明显看出来,在这个exe的同级有一个Project的文件夹,然后将免安装的ant和jdk放在Project下。在exe中再cd到build.xml的路径,执行ant命令即可。

build.xml的配置,需要改动的地方也不多,如下:

<?xml version="1.0" encoding="UTF-8"?>
<project default="localDeployWar" basedir="F:\TestPDMDemo0115">  
  
    <echo message="pulling in property files" />  
    <property file="build.properties" />   
  
    <!--  定义项目名称  -->  
    <property name="project.name" value="TestPDMDemo0115" />  
    <!--  定义jar包名称  -->  
    <property name="jar.name" value="com.jar" />  
    <!--  定义war名称  -->  
    <property name="war.name" value="${project.name}" />  
    <!--  定义local web 容器的部署路径  -->  
    <property name="localWebServer.home" value="D:\JavaAbout\Tomcat\apache-tomcat-7.0.78" />  
    <property name="log.file" value="${localWebServer.home}/webapps/log.info"/>
    <!--  源代码路径  -->  
    <property name="src.dir" value="src" />  
    <!--  编译的目标路径  -->  
    <property name="dist.dir" value="./CompileClassAndWar" />  
    <property name="dist.classes.dir" value="${dist.dir}/classes" />  
    <property name="dist.jar.dir" value="${dist.dir}/jar" />  
    <property name="dist.war.dir" value="${dist.dir}/war" />  
    <!-- WebContent 结构下的几个路径  -->  
    <property name="webcontent.dir" value="./WebRoot" />  
    <property name="webcontent.webinf.dir" value="${webcontent.dir}/WEB-INF" />  
  
    <!--  定义 classpath 路径,抽象定义,可以多处引用  -->  
    <path id="classpath">  
        <!-- 项目的jar包-->  
        <fileset dir="${webcontent.webinf.dir}/lib">  
            <include name="**/*.jar" />  
        </fileset>  
        <!-- 项目的classes文件-->  
        <pathelement location="${webcontent.webinf.dir}/classes " />  

    </path>  
    <!--  初始化删除、创建 classes 路径  -->  
    <target name="init">  
        <echo message=" ======  初始化创建build.dir编译目录  ======" />  
        <delete dir="${dist.dir}" />  
        <mkdir dir="${dist.dir}" />  
        <mkdir dir="${dist.jar.dir}" />  
        <mkdir dir="${dist.war.dir}" /> 
		<touch file="${log.file}" /> 
        <echo message=" ======  初始化WebContent.classes创建编译目录  ======" />  
        <!-- WebContent 下的 classes -->  
        <mkdir dir="${dist.classes.dir}" />  
    </target>  
    <!--  编译 java 文件,编译到 dist.classes 下-->  
    <target name="compile" depends="init">  
        <echo message=" ======  编译源代码 复制到 dist.classes 目录 ======" />  
        <javac encoding="utf-8" srcdir="${src.dir}" destdir="${dist.classes.dir}" debug="on" deprecation="false" optimize="true" includeAntRuntime="false"  failonerror="true" source="1.6" target="1.6">  
            <classpath refid="classpath" />  
        </javac>  
  
        <echo message=" ======  将重新编译的classes文件复制到classes目录下 ======" />  
        <copy todir="${webcontent.webinf.dir}/classes">  
            <fileset dir="${dist.classes.dir}">  
                <exclude name="**/*Test*.*" />  
            </fileset>  
        </copy>  
         
		 <echo message=" ======  将hibernate.cfg.xml复制到classes目录下 ======" />  
        <copy file="${src.dir}/hibernate.cfg.xml" todir="${webcontent.webinf.dir}/classes">   
        </copy>
		
    </target>  

    <target name="test" depends="compile" description="Junit 测试,暂无">  
        <echo message=" ====== Junit 测试,暂无 ======" />  
    </target>  
  
    <target name="war" depends="test" description="将工程打成 war 包">  
        <echo message=" ======  打 war 包  ======" />  
        <delete file="${dist.war.dir}/${war.name}.war" />  
        <war warfile="${dist.war.dir}/${war.name}.war" webxml="${webcontent.webinf.dir}/web.xml">  
            <fileset dir="${webcontent.dir}" >  
            </fileset>  
        </war>  
    </target>  
  
    <target name="localDeploy" depends="test" description="将工程直接部署到webapps">  
        <echo message="将工程不打包直接部署到本地tomcat的Webapps" />  
        <delete file="${localWebServer.home}/webapps/${war.name}.war" />  
          
        <delete dir="${localWebServer.home}/webapps/${project.name}" />  
        <mkdir dir="${localWebServer.home}/webapps/${project.name}" />  
        <copy todir="${localWebServer.home}/webapps/${project.name}" overwrite="true">  
            <fileset dir="${webcontent.dir}" />  
        </copy>  
    </target>  
  
    <target name="localDeployWar" depends="war" description="将war包部署server中">  
        <echo message="将war包部署local server中" />  
        <delete file="${localWebServer.home}/webapps/${war.name}.war" />  
        <delete dir="${localWebServer.home}/webapps/${project.name}" />  
  
        <copy todir="${localWebServer.home}/webapps" overwrite="true">  
            <fileset file="${dist.war.dir}/${war.name}.war" />  
        </copy> 
        <exec executable="cmd" dir="${localWebServer.home}/bin"  failonerror="false"   
                    output="${log.file}" append="true" >  
             <!-- <arg value="/c" /> -->    
             <env key="CATALINA_HOME" path="${localWebServer.home}"/>  
             <arg value="/c startup.bat" />     
        </exec>  		
    </target>   
</project> 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值