- 浏览: 297104 次
- 性别:
- 来自: 东京
文章分类
最新评论
-
80后的童年2:
企业级分布式搜索平台Solr视频教程网盘地址:https:// ...
企业级搜索引擎Solr使用入门指南 -
springdata_spring:
apache lucene开源框架demo使用实例教程源代码下 ...
Lucene / Solr 开发经验 -
springdata-jpa:
java web开发分页demo源代码下载:http://ww ...
简易java分页标签 -
zjf_sdnu:
兄弟,script写错了
jqGrid初学备注 -
85600367:
你好,请教一个问题。当进行分布式查询时solr无法查询到Luc ...
Lucene / Solr 开发经验
install.xml
<?xml version="1.0" encoding="utf-8" standalone="yes" ?> <installation version="1.0"> <info> <appname>CLAY</appname> <appversion>1.0-0208</appversion> <url>http://www.clayz.com</url> <javaversion>1.6.0_12</javaversion> <authors> <author name="Clay Zhong" email="zjclay@gmail.com" /> </authors> </info> <!-- define install window --> <guiprefs width="500" height="380" resizable="no" /> <!-- language options --> <locale> <langpack iso3="eng" /> <langpack iso3="chn" /> </locale> <resources> <res id="LicencePanel.licence" src="Licence.txt" /> <res id="InfoPanel.info" src="Readme.txt" /> <res id="userInputSpec.xml" src="userInputSpec.xml" /> <res id="shortcutSpec.xml" src="shortcutSpec.xml" /> </resources> <variables> <variable name="InstallerFrame.logfilePath" value="$INSTALL_PATH/log/install.log" /> <variable name="desktopshortcutcheckboxenabled" value="true" /> </variables> <jar src="lib/install-utils.jar" /> <jar src="lib/mysql-connector-java-5.1.7-bin.jar" /> <listeners> <listener installer="ConfigurationListener" /> <listener installer="DatabaseGenerationlistener" /> </listeners> <panels> <panel classname="HelloPanel" /> <panel classname="InfoPanel" /> <panel classname="LicencePanel" /> <panel classname="TargetPanel" /> <panel classname="UserInputPanel" id="jdbc.parameters"> <validator classname="com.clay.install.JdbcConnectionValidator" /> </panel> <panel classname="UserInputPanel" id="mail.server.parameters" /> <panel classname="PacksPanel" /> <panel classname="ShortcutPanel" /> <panel classname="InstallPanel" /> <panel classname="FinishPanel" /> </panels> <packs> <pack name="Base" required="yes"> <description>The base files</description> <file src="Readme.txt" targetdir="$INSTALL_PATH" /> <file src="Licence.txt" targetdir="$INSTALL_PATH" /> <file src="icons" targetdir="$INSTALL_PATH" /> </pack> <pack name="Src" required="no"> <description>Source File</description> <file src="src" targetdir="$INSTALL_PATH/src" /> </pack> <pack name="App" required="yes"> <description>Application</description> <file src="WebRoot" targetdir="$INSTALL_PATH" /> </pack> </packs> <native type="izpack" name="ShellLink.dll" /> </installation>
userInputSpec.xml
<?xml version="1.0" encoding="utf-8"?> <userInput> <panel order="0" id="jdbc.parameters"> <field type="title" txt="Database Configuration" bold="true" size="1" /> <field type="divider" align="top" /> <field type="staticText" align="left" txt="Please input existing MySQL username and password." /> <field type="text" variable="dbUsername"> <spec txt="Username:" id="text.label" size="25" /> <validator class="com.izforge.izpack.util.NotEmptyValidator" txt="Username for MySQL can not be empty!" /> </field> <field type="password" variable="dbPassword"> <spec> <pwd txt="Password:" size="25" /> </spec> <validator class="com.izforge.izpack.util.NotEmptyValidator" txt="Password for MySQL can not be empty!" /> </field> </panel> <panel order="1" id="mail.server.parameters"> <field type="title" txt="Mail Server Configuration" bold="true" size="1" /> <field type="divider" align="top" /> <field type="staticText" align="left" txt="Please input your mail server account." /> <field type="text" variable="mailHost"> <spec txt="Mail Host:" id="text.label" size="25" /> <validator class="com.izforge.izpack.util.NotEmptyValidator" txt="Mail host can not be empty!" /> </field> <field type="text" variable="mailUserName"> <spec txt="Username:" id="text.label" size="25" /> <validator class="com.izforge.izpack.util.NotEmptyValidator" txt="Username for mail server can not be empty!" /> </field> <field type="password" variable="mailPassword"> <spec> <pwd txt="Password:" size="25" /> </spec> <validator class="com.izforge.izpack.util.NotEmptyValidator" txt="Password for mail server can not be empty!" /> </field> </panel> </userInput>
shortcutSpec.xml
<?xml version="1.0" encoding="UTF-8"?> <shortcuts> <skipIfNotSupported /> <programGroup defaultName="CLAY" location="applications||startMenu" /> <!-- Shortcut for start server --> <shortcut name="Start CLAY" target="$INSTALL_PATH\WebRoot\startup.bat" workingDirectory="$INSTALL_PATH\WebRoot" description="This starts CLAY" iconFile="$INSTALL_PATH\icons\izpack.ico" iconIndex="0" initialState="noShow" programGroup="yes" desktop="yes" applications="no" startMenu="yes" startup="no"> </shortcut> <!-- Shortcut for stop server --> <shortcut name="Stop CLAY" target="$INSTALL_PATH\WebRoot\startup.bat" workingDirectory="$INSTALL_PATH\WebRoot" description="This starts CLAY" iconFile="$INSTALL_PATH\icons\izpack.ico" iconIndex="0" initialState="noShow" programGroup="yes" desktop="yes" applications="no" startMenu="yes" startup="no"> </shortcut> <!-- Shortcut for uninstall --> <shortcut name="Uninstall CLAY" target="$INSTALL_PATH\Uninstaller\uninstaller.jar" workingDirectory="$INSTALL_PATH\Uninstaller" description="This uninstall CLAY" iconFile="$INSTALL_PATH\icons\izpack.ico" iconIndex="0" initialState="noShow" programGroup="yes" desktop="no" applications="no" startMenu="no" startup="no"> </shortcut> </shortcuts>
自定义validator,将其打包放到lib目录下
package com.clay.install; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import com.izforge.izpack.installer.AutomatedInstallData; import com.izforge.izpack.installer.DataValidator; /** * @author Clay Zhong, Email: zjclay@gmail.com * @date 2009-2-10 */ public class JdbcConnectionValidator implements DataValidator { @Override public boolean getDefaultAnswer() { return true; } @Override public String getErrorMessageId() { return "Can not connect to MySQL, please check your database."; } @Override public String getWarningMessageId() { return null; } @Override public Status validateData(AutomatedInstallData arg) { Connection connection = null; try { Class.forName("com.mysql.jdbc.Driver"); connection = DriverManager.getConnection("jdbc:mysql://localhost", arg .getVariable("dbUsername"), arg.getVariable("dbPassword")); } catch (ClassNotFoundException e) { // TODO: log exception return Status.ERROR; } catch (SQLException e) { // TODO: log exception return Status.ERROR; } finally { if (connection != null) { try { connection.close(); } catch (SQLException e) { // TODO: do nothing and log exception } } } return Status.OK; } }
自定义listener
package com.clay.install; import com.izforge.izpack.event.SimpleInstallerListener; import com.izforge.izpack.installer.AutomatedInstallData; import com.izforge.izpack.util.AbstractUIProgressHandler; /** * @author Clay Zhong, Email: zjclay@gmail.com * @date 2009-2-10 */ public class DatabaseGenerationlistener extends SimpleInstallerListener { private String sqlPath = "sql/init.sql"; public void beforePacks(AutomatedInstallData idata, Integer npacks, AbstractUIProgressHandler handler) throws Exception { StringBuilder command = new StringBuilder("mysql -u").append( idata.getVariable("dbUsername")).append(" -p").append( idata.getVariable("dbPassword")).append(" < ").append(sqlPath); java.lang.Runtime.getRuntime().exec("cmd /c " + command.toString()); } }
package com.clay.install; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import com.izforge.izpack.PackFile; import com.izforge.izpack.event.SimpleInstallerListener; /** * @author Clay Zhong, Email: zjclay@gmail.com * @date 2009-2-10 */ public class ConfigurationListener extends SimpleInstallerListener { public void afterFile(File file, PackFile packFile) throws Exception { if (file.getName().equals("database.properties")) { // modify username and password StringBuilder stringBuilder = new StringBuilder(); BufferedReader reader = null; BufferedWriter writer = null; try { reader = new BufferedReader(new FileReader(file)); String temp = null; while ((temp = reader.readLine()) != null) { stringBuilder.append(temp); stringBuilder.append("\n"); } String fileBody = stringBuilder.toString(); fileBody.replaceAll("root", "test"); writer = new BufferedWriter(new FileWriter(file)); writer.write(fileBody); } catch (Exception e) { // TODO: log exception } finally { try { if (reader != null) { reader.close(); } if (writer != null) { writer.close(); } } catch (Exception e) { // TODO: log exception } } } } }
部署listener步骤如下:
- 将之拷贝到[IzPackRoot]/src/lib/[MyPackagePath]/MyCompilerListener.java。
- 在[IzPackRoot]/src/build.xml中添加build-compiler-listener
<build-installer-listener name="DatabaseGenerationlistener"> <include name="com/clay/install/DatabaseGenerationlistener.java" /> </build-installer-listener> <build-installer-listener name="ConfigurationListener"> <include name="com/clay/install/ConfigurationListener.java" /> </build-installer-listener>
- 编译build.xml。
- 在install.xml中添加listener。
- 命令行运行
java -jar D:/IzPack/lib/compiler.jar E:/CLAY/install.xml -b E:/CLAY -o E:/CLAY/install.jar
发表评论
-
Eclipse快捷键
2011-12-22 14:05 1361好久没用了,再回顾一下,免得忘了。 编辑 ... -
设计模式备忘 - 行为型
2010-03-29 23:59 1488责任链模式(Chain of Responsibility) ... -
设计模式备忘 - 结构型
2010-03-28 17:50 1243适配器模式(Adapter) 将一个类的接口转换成客户希望的 ... -
设计模式备忘 - 创建型
2010-03-28 16:04 1175工厂模式 工厂模式主 ... -
SVN同步备份
2009-05-30 22:59 2932首先建立一个空的repository,svnadmin cre ... -
Eclipse下配置Tomcat debug
2009-05-24 21:16 8198Eclipse下自带有Tomcat debug插件,不过该插件 ... -
Jboss SSL on Debian
2009-03-22 12:17 12451. Generate self-signed certifi ... -
Maven初学备注
2009-01-06 23:35 3452项目生命周期:process-resources -> ... -
How to integrate Solr and Jboss
2008-09-11 22:50 1850本文转自 http://www.mail-archive.co ... -
什么是JMX?
2008-08-28 21:31 1350转自:http://www.blogjava.net/mlh1 ... -
JNLP介绍
2008-08-02 17:44 2994原文地址:http://blog.csdn.net/yq760 ... -
Apache虚拟主机配置
2008-07-10 16:42 3294Apache虚拟主机配置 来自 Clay的日记 ... -
Apache配置.htaccess\.htpasswd
2008-07-10 16:59 2741Apache配置.htaccess\.htpasswd 来自 ... -
Apache服务器中的URL重写的配置和应用
2008-07-10 17:15 2357Apache服务器中的URL重写的配置和应用 来自 Clay的 ... -
Log4j常用配置
2008-01-31 18:25 1804常用log4j配置,一般可以采用两种方式,.propertie ... -
SVN常用目录结构
2007-12-26 22:29 5116特殊目录名说明 trunk 主干,存储最新稳定版本 tag ... -
Windows下SVN服务器的搭建
2007-12-26 22:25 85161,软件下载 下载Subvers ... -
针对ECLIPSE的SUBVERSION插件
2007-12-15 16:30 3346摘要 Subversion (SVN) ...
相关推荐
IZPack 怎么使用IZPack 怎么使用IZPack 怎么使用IZPack 怎么使用IZPack 怎么使用IZPack 怎么使用IZPack 怎么使用IZPack 怎么使用
### IZpack 使用心得 #### 一、IZpack 概述与应用场景 IZpack 是一个开源的安装系统,主要用于将 Java 程序打包成可下载的安装包,并且能够支持在没有预装 JVM 的设备上运行。它提供了一种简单有效的方式来创建跨...
2. **学习XML配置**:IzPack使用XML来定义安装流程,包括文件复制、用户输入、许可协议等。源代码将揭示如何解析和执行这些XML配置。 3. **自定义安装行为**:IzPack支持编写Java代码来扩展其功能,如自定义安装...
izpack是基于Apache Software License 2.0许可的开源项目;izpack是纯Java,对部分特性有针对不同平台版本的Library。例如:快捷键的创建。izpack是一个用于解决安装程序制作的Builder工具;通过izpack制作的安装...
izpack是开源的打包工具,这是他的入门操作指南
标题 "Izpack Maven打包 第二篇" 指向的是一个关于使用Maven和Izpack进行软件打包过程的教程。在这个过程中,Maven是一个流行的构建自动化工具,用于管理和构建Java项目,而Izpack则是一个用于创建安装程序的开源...
接下来,使用Izpack的命令行工具,结合我们创建的install.xml脚本,生成最终的安装包。这个安装包将包含Oracle的所有组件和Izpack的安装逻辑。生成的安装程序可以在Cent OS系统上运行,引导用户完成Oracle的安装。 ...
IzPack-install-4.3.5
【标题】"izpack-gui-5.0.0-beta10.zip" 是一个用于创建图形用户界面(GUI)安装程序的开源工具IzPack的版本。IzPack是一个强大的跨平台安装包制作工具,它允许开发者轻松创建具有专业外观和功能的安装程序,适用于...
安装模块与IzPack 不同,出于代码组织的目的,此示例提出一种使用3个模块的方法,而不是IzPack文档中的2个模块。 一个名为package的组装模块附加的面板模块IzPack安装程序模块使用mvn clean install构建后,安装程序...
IzPack 是一个安装工具,具体介绍免去。 http://izpack.org/downloads/
IzVerifier 还会解析安装程序使用的任何自定义类的源代码,以确保没有引用未定义的 izpack 规范。 最后,IzVerifier 还可以对安装程序的条件依赖树执行图形搜索,以查找循环或丢失的项目。 当前支持的规范类型是...
can not down in company,so download it on home,then download it in company
未经特别事先书面许可,不得使用名称“clapper.org”、“sbt-izpack”或任何贡献者的名称来认可或推广源自该软件的产品。 本软件由版权所有者和贡献者“按原样”提供,并提供任何明示或暗示的保证,包括但不限于...
在本主题中,我们将探讨如何在CentOS操作系统上配置OpenSSH Gateway,并使用IzPack Gateway进行更高效的操作。 首先,让我们深入了解OpenSSH Gateway。OpenSSH Gateway允许您创建一个堡垒主机(也称为跳跃主机),...
5. **丰富的资源**:拥有活跃的社区和详尽的文档,便于学习和使用。 【描述】提到的 "Hermes.zip, hermes gwt 服务器端 i18n 库一个 gwt 服务器端 i18n 库",Hermes 是一个用于 Google Web Toolkit (GWT) 项目的...
maven-izpack-plugin-0.3.1.jar
maven-izpack-plugin-0.3.0.jar
izPack 是一个 Java 安装程序制作工具,能够制作一些简单的安装程序。制作出来的安装程序能在 Unix-like, MacOS X, Windows 等系统平台上运行。