2012-02-13 35 views
1

我正在使用InstallAnywhere为多个平台的JAR创建可执行文件。因此,在任何地方安装都会为Unix生成.sh和为Windows生成.exe。使用InstallAnywhere生成批处理文件而不是可执行文件

但是对于1个jar,我想为Windows创建批处理文件,而不是exe文件。我仍然希望Unix的.sh。

我找不到任何松懈的属性来实现这一点。我怎样才能做到这一点?

+0

做这些应用程序。有GUI?如果是这样,也许[Java Web Start](http://stackoverflow.com/tags/java-web-start/info)是最好的解决方案。它可以安装桌面快捷方式和/或用于启动Java富客户端应用程序的菜单项。 – 2012-02-13 10:20:03

回答

1

在InstallAnywhere中没有办法做到这一点。 InstallAnywhere希望在安装过程中创建本机执行目标。您可以得到的最接近的是创建一个仅用于控制台的可执行文件。

但是,您可以编写自己的批处理文件并将其作为安装的一部分发送。如果需要包含路径信息(或其他安装时信息),则可以添加InstallAnywhere变量,如$IA_CLASSPATH$,并在安装时替换它们。

使用“修改文本文件 - 单个文件”操作在安装时修改您的批处理文件(或其他文本文件)。

为了我们可以测试我们的批处理文件,我们插入了分配给脚本变量的位置参数。在开发过程中,我们手动提供位置参数。在安装时,我们用来自InstallAnywhere的值替换位置参数。

例如: - 采取行动,我们的项目

@echo off 
set APP_USER=%1 
set APP_PASSWORD=%2 
set APP_DIR=%3 
set CLASSPATH=%CLASSPATH%;$IA_CLASSPATH$;./lib/myapp.jar 

cd %APP_DIR% 

java -cp %CLASSPATH% com.example.myapp.Main %APP_USER% %APP_PASSWORD% 

我们的“单文件修改文本文件”补充。我们使用“搜索和替换字符串:”选项来替换位置参数。在这个例子中,我们会用安装过程中收集的值替换%1和%2,并用$USER_INSTALL_DIR$替换%3。要替换任何InstallAnywhere变量(在本例中为$IA_CLASSPATH$),请选中“替换文件中的InstallAnywhere变量”复选框。