install4j:从被调用根用户的主目录中删除文件

install4j:从被调用根用户的主目录中删除文件,install4j,Install4j,我的应用程序创建了一个安装程序没有的文件夹,因此我需要弄清楚如何删除这些文件。唯一的问题是,卸载程序以root用户身份运行。因此,当我尝试使用操作清除这些文件并尝试将其指向调用用户(在本例中为root用户)时,它会尝试删除/root/目录中的这些附加文件。但是,这些文件创建并存储在/home/user目录中 我在install4j页面上四处查看,找不到检测调用sudo用户的方法。在shell中,这可以通过调用logname来实现。是否(本机)可以通过install4j卸载程序检测以root身份执

我的应用程序创建了一个安装程序没有的文件夹,因此我需要弄清楚如何删除这些文件。唯一的问题是,卸载程序以root用户身份运行。因此,当我尝试使用操作清除这些文件并尝试将其指向调用用户(在本例中为root用户)时,它会尝试删除
/root/
目录中的这些附加文件。但是,这些文件创建并存储在
/home/user
目录中

我在install4j页面上四处查看,找不到检测调用sudo用户的方法。在shell中,这可以通过调用
logname
来实现。是否(本机)可以通过install4j卸载程序检测以root身份执行卸载的用户


谢谢大家!

使用“运行可执行文件或批处理文件”操作,将“可执行文件”设置为“/usr/bin/logname”,“重定向stdout”设置为“to installer variable”。然后在配置的安装程序变量中获得命令的输出。

Hah!聪明。谢谢你。我会试试,然后再报告。我觉得我做错了什么。我将可执行文件设置为
/usr/bin/logname
,将工作目录设置为
,并将stdout重定向到
var
设置为
lognameUser
。我有一个删除文件操作,试图删除文件夹
/home/${installer:lognameUser}/.tls
,但它从未被删除。卸载日志显示logname执行没有返回任何值,这解释了它试图删除
/home/.tls
的原因。有什么想法吗?你能在日志文件中发布卸载日志的相关部分吗:
属性可执行文件:/usr/bin/logname
-
属性stdoutVariableName:logname
。操作完成后,会显示
[INFO]com.install4j.runtime.installer.helper.launching.LaunchHelper:stdout输出为空
。因此没有/usr/bin/logname的输出。执行此操作的机器实际上具有该路径。我不确定为什么它在执行时遇到问题。我将操作的stderr重定向到日志文件,得到了以下信息:
/usr/bin/logname:没有登录名
。解释stdout为什么是空的。