将stdout和stderr重定向到安装程序变量[Install4j]

时间:2014-06-05 13:38:39

标签: variables redirect stdout stderr install4j

我一直在使用Install4j为Java应用程序创建一个很酷的安装程序,并用它做了很多事情。现在我想知道我正在使用“运行可执行文件或批处理文件”操作执行BAT文件的命令。因此,我在手册中阅读了此Action文档,并说它最终可以将STDOUT和STDERR重定向到Installer变量。 所以,我创建了两个安装程序变量stdout_response和stderr_response。 这两个变量都使用默认值“default_stdout”和“default_stderr”定义。

在Action中,我选择与STDOUT和STDERR响应相关的“重定向到安装程序变量”选项,并为此重定向设置我的安装程序变量。

我的BAT文件会执行一些ECHO,所以我认为最终会有一些东西离开那里。

在我的“运行可执行文件或批处理文件”操作之后,我已经定义了一个“运行脚本”操作,我只是在安装程序变量上执行System.out.println(...),以便执行下一个代码: / p>

的System.out.println(context.getVariable( “stdout_response”)); //打印我的STDOUT安装程序变量。

当我的安装程序到达此Action时,它会打印一个空字符串“”,因此正在设置我的Installer变量,但不是我想要的值。

对于我的“stderr_response”,值集类似于“^ C”

我缺少什么东西吗?也许BAT文件必须建立一些内部重定向。

提前致谢!!!

版!!!!添加了更多信息

我的“运行可执行文件或批处理文件”操作配置

(暂无法提交图片,但我保留以下链接)

Configuration

我的验证脚本在“运行可执行文件或批处理文件”操作之后执行“运行脚本”操作

System.out.println("**********************************************************************************************************");
System.out.println(String.format("Test de Variable STDOUT: %s", (String)context.getVariable("script_response_stdout")));
System.out.println(String.format("Test de Variable STDERR: %s", (String)context.getVariable("script_response_stderr")));
System.out.println("**********************************************************************************************************");
return false;

我的批处理文件

@echo off
cls

set mysql_msi=%1
set mysql_svname=%2
set mysql_data_dir=%3
set mysql_install_dir=%4
set mysql_admin_user=%5
set mysql_admin_password=%6
set mysql_port=%7
set mysql_instance=%8
set mysql_exe=%9

echo mysql_msi: %mysql_msi%
echo mysql_svname: %mysql_svname%
echo mysql_admin_user: %mysql_admin_user%
echo mysql_admin_password: %mysql_admin_password%
echo mysql_port: %mysql_port%
echo mysql_instance: %mysql_instance%
echo mysql_exe: %mysql_exe%

msiexec /i %mysql_msi% /qn INSTALLDIR=%mysql_install_dir% /L* C:\MSI-MySQL-Log.txt

echo Mysql Instance Configuration

%mysql_instance% -i -q ServiceName=%mysql_svname% RootPassword=%mysql_admin_password% ServerType=DEVELOPMENT DatabaseType=MYISAM Port=%mysql_port% RootCurrentPassword=%mysql_admin_password%

echo Terminated

无法发布更多链接,所以我在这里评论他们!!!!

1 个答案:

答案 0 :(得分:0)

如果选择“运行可执行文件或批处理文件”操作的“显示控制台窗口”属性,则重定向不起作用。

在install4j 5.1.12中,将无法再选择此组合。

相关问题