Java 如何使用NSIS互联网插件?

Java 如何使用NSIS互联网插件?,java,plugins,nsis,Java,Plugins,Nsis,我有一些代码定义了这样一个变量: .... Var IP ... 我还有一些在init上运行的代码 Function .onInit ;Default installation folder StrCpy $INSTDIR "C:\PTL\${Project}" Internet::GetLocalHostIP ${IP} FunctionEnd 当我针对脚本运行解释器时,我得到一个警告: [exec] Variable "IP" not referenced or nev

我有一些代码定义了这样一个变量:

....
Var IP
...
我还有一些在init上运行的代码

Function .onInit
  ;Default installation folder
  StrCpy $INSTDIR "C:\PTL\${Project}"
  Internet::GetLocalHostIP ${IP}
FunctionEnd
当我针对脚本运行解释器时,我得到一个警告:

 [exec]   Variable "IP" not referenced or never set, wasting memory!
我想这是因为我没有给IP分配一些常量值,它也无法识别Internet插件的set操作,但当我运行它生成的安装程序,并检查使用此值(-Djava.rmi.hostname)的JVM参数时,我有以下值:

-Djava.rmi.server.hostname=
我尝试使用$8这样的值,但它的作用是相同的,只有值变为:

-Djava.rmi.server.hostname=0

如何正确使用此插件


在设置方面,我刚刚将插件放入了./Plugins/x86 ansi

${x}
是用于
!定义
,变量的语法是
$x
,因此在您的情况下
$IP
,但NSIS插件API不允许输出到这样的变量中

这个插件有一个不寻常的设计,如果你看看它包含的.nsh文件,你会发现它有一些定义,其中VAR_0=0等等

这意味着您必须执行以下操作:

Internet::GetLocalHostIP 1 ; Tells the plugin to put the result in $1
StrCpy $IP $1 ; Copy into your variable