Atitit 发帖机系列(6) USRQBN2201 setup spec安装程序的实现规范与标准化解决方案

安装主要解决一个问题,就是resin的内容启动路径以及端口。。这里是使用的端口8077

主要是加载模板配置,然后替换,即可。

遇到的问题主要有主目录路径的提取,截取最后一个反斜杠。。

setup安装.bat

set javaexec="%java_home%\bin\java.exe"

rem a  start explorer z:  WEB-INF\lib

rem check url

set maindir=%~dp0

set maindirV2=%maindir:~0,-1%

%javaexec%  -classpath ".;.\classes;%atiplat_se%\WebRoot\WEB-INF\classes;%atiplat_se%\bin" -Djava.ext.dirs="%~dp0lib;%atiplat_se%\WebRoot\WEB-INF\lib"   -Djava.library.path="%~dp0dll;%atiplat_se%\dll" com.attilax.setup.ResinSetup "%maindirV2%"  8077

Pause

//  com.attilax.setup.ResinSetup

public class ResinSetup {

// d: 8088

public static void main(String[] args) {

String s="d:/resin-4.0.22/conf/resin.xml";

s=filex.convertSseparatorToLocal(s,"/");

//System.out.println(filex.getFileName_noExtName(s));

//System.out.println(File.separator);  //  File.separator=\ in windows

String mainDir=args[0];

String port=args[1];

String resinRoot=mainDir+"/resin-4.0.22";

String cfg_tmpl=resinRoot+"/conf/resin_tmpl.xml";

String txt=filex.read(cfg_tmpl);

String webroot=mainDir+"/AtiPlatf_ee/WebRoot";

txt=txt.replace("@root@", webroot);

txt=txt.replace("@port@", port);

String cfg=resinRoot+"/conf/resin.xml";

cfg=filex.convertSseparatorToLocal(cfg,"/");

String new_file_tmp_bek = filex.addSuffix(cfg, filex.getUUidName());

System.out.println(new_file_tmp_bek);

new File(cfg).renameTo(new File(new_file_tmp_bek ));

filex.save(txt, cfg);

System.out.println("--ok");

}

}

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )

汉字名:艾提拉(艾龙),   EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

Atiend

Atitit 发帖机系列(6) USRQBN2201 setup spec安装程序的实现规范与标准化解决方案的更多相关文章

  1. Atitit   发帖机实现(3 )---usrQBN023 js提交ajax内容到后端规范与标准化

    Atitit   发帖机实现(3 )---usrQBN023 js提交ajax内容到后端规范与标准化 大段内容务必要替换转义换行符号1 提交务必使用utf编码,否则解码后的可能缺失,是web serv ...

  2. Atitit 发帖机系列(8)  词法分析器v5 版本新特性说明)

    Atitit 发帖机系列(8)  词法分析器v5 版本新特性说明) v5  增加对sql单引号的内部支持.可以作为string 结构调整,使用递归法重构循环发..放弃循环发. V4 java dsl词 ...

  3. Atitit 发帖机系列(7) 词法分析的方法attilax大总结)

    Atitit 发帖机系列(7) 词法分析的方法attilax大总结) 1.1. 词法分析貌似俩大方法,一个直接根据状态图转换,一个根据dfa1 1.2. switchcase或者ifelse 最原始方 ...

  4. Atitit 发帖机实现(4 )- usbQBM1601 gui操作标准化规范与解决方案attilax总结

    Atitit 发帖机实现(4 )- usbQBM1601 gui操作标准化规范与解决方案attilax总结 1.1. 根据gui的类型使用不同的gui调用api1 1.2. Script化1 1.3. ...

  5. Atitit 发帖机实现(2)---usrQBN2243 文本解析到对象协议规范

    Atitit 发帖机实现(2)---usrQBN2243 文本解析到对象协议规范 文本内容 ###注释 标题:标题标题标题标题标题1 人数:5 月薪:2000-3000 内容: 内容内容内 容内容内容 ...

  6. Atitit  发帖机实现(1)-----UsrQBm2008 页面上下文规范

    Atitit  发帖机实现(1)-----UsrQBm2008 页面上下文规范 1.1. 网站绝对路径,页面绝对路径1 1.2. Java的javax.servlet.ServletContext1 ...

  7. Inno Setup 在安装程序开始前和卸载程序开始前,检查并关闭运行的进程

    (2011-12-29 11:54:56) 转载▼ 标签: innosetup it 分类: 开发工具经验累积 Inno Setup在安装程序前,如果有使用的进程在运行,会有错误提示,而使得Insta ...

  8. Lenovo Setup(安装程序)

    按住F1,进入“Lenovo Setup”. 一.Main(条目处的设置不可更改) UEFI BIOS Version H1ET69WW(1.12) UEFI BIOS Date(Year-Month ...

  9. [Inno Setup] 退出安装程序的两种方式

    1. 完全静默的退出 procedure ExitProcess(exitCode:integer); external 'ExitProcess@kernel32.dll stdcall'; ... ...

随机推荐

  1. ORACLE导入、导出命令使用方法

    oracle导入.导出命令使用方法: 给用户增加导入数据权限的操作 第一,启动sql*puls 第二,以system/manager登陆 第三,create user 用户名 IDENTIFIED B ...

  2. springboot使用之三:springboot使用logback日志

    springboot 默认使用的日志就是logback,所以使用logback不需要添加日志相关依赖了,执行 添加logback.xml配置文件,springboot这个聪明的框架便能识处理你的配置. ...

  3. Cocostudio 文章列表

    Cocostudio 文章列表 Cocostudio(1) 容器层的使用- ScrollView ListView PageViewhttp://www.cnblogs.com/TS-qrt/arti ...

  4. Word 2007 文档结构图混乱

    Word 2007在编写大型文档时经常出现文档结构图混乱的情况,经过多番检索试验,得出结论: 绝对有效的临时性解决方案:在打开word的时候左下角会有提示word自动更新文档样式,按esc键取消,然后 ...

  5. enum与字符串转换

    public enum CacheControlMode { DisableCache, UseExpires } string s = CacheControlMode.UseExpires.ToS ...

  6. Eclipse中支持js提示

    使用eclipse自带的插件,无需另外安装插件,具体步骤如下 1.打开eclipse→Windows→Preferences→Java→Editor→Content Assist 修改Auto Act ...

  7. OpenMP之枚举排序

    // EnumSort.cpp : 定义控制台应用程序的入口点. //枚举排序 /* 枚举排序(Enumeration Sort)是一种最简单的排序算法,通常也称为秩排序(Rank Sort). 该算 ...

  8. 一些有用的Javascript Function :-)

    1.验证完整的日期格式:(yyyy-MM-dd)function checkDate(RQ) { var date = RQ; var result = date.match(/^(\d{1,4})( ...

  9. 5.webService拦截器

    CXF为什么要设计拦截器? 为了在webservice请求过程中,能动态操作请求和响应数据, CXF设计了拦截器. 拦截器分类 1.按所处的位置分:服务器端拦截器,客户端拦截器 2.按消息的方向分:入 ...

  10. Activity类生命周期

    Activity通常就是一个单独的屏幕.每一个活动都被实现为一个独立的类,并且从活动基类中继承而来,活动类将会显示由视图控件组成的用户接口,并对事件作出响应. 从开发者角度看,Activity是一个J ...