将Java JRE安装为服务结构中的启动任务

时间:2017-04-18 06:02:38

标签: java windows azure-service-fabric

我添加了jre-8u121-windows-x64.exe并制作了install.cmd

start /B /WAIT jre-8u121-windows-x64.exe /s SPONSORS=0

在我的/PackageRoot/Code文件夹

添加了

<SetupEntryPoint>
  <ExeHost>
    <Program>install.cmd</Program>
    <WorkingFolder>CodePackage</WorkingFolder>
    <ConsoleRedirection FileRetentionCount="5" FileMaxSizeInKb="2048"/>
  </ExeHost>
</SetupEntryPoint>

到我的服务清单

将主体添加到应用程序清单

<Principals>
<Users>
  <User Name="Admin">
    <MemberOf>
      <SystemGroup Name="Administrators" />
    </MemberOf>
  </User>
</Users>

并运行政策

<Policies>
  <RunAsPolicy CodePackageRef="Code" UserRef="Admin" EntryPointType="All" />
</Policies>

但由于某种原因未安装JRE。

使用上面的CMD版本时,它不会失败,我没有任何包含信息的日志文件。

我还直接在服务清单的Program和Arguments元素中尝试jre-8u121-windows-x64.exe /s,这导致问题在事件日志中以退出代码1终止 - 但也没有关于它失败原因的真实信息。

SetupEntryPoint:ExeEntryPointDescription { Program = jre-8u121-windows-x64.exe, Arguments = /s /L d:/javainstall.log, WorkingFolder = Work, PeriodicIntervalInSeconds = 0 ConsoleRedirectionEnabled = true ConsoleRedirectionFileRetentionCount = 5 ConsoleRedirectionFileMaxSizeInKb = 2048 } terminated with exitcode 1. CodePackageIdentifier { ServicePackageId = S-Innovations.Elastic.ElasticApplicationType_App31:S-Innovations.Elastic.ElasticServicePkg, CodePackageName = Code }:131369814689037041

1 个答案:

答案 0 :(得分:0)

我在我的应用程序中以类似的方式运行setup.cmd文件,并且使用 CodeBase 而不是CodePackage正常运行。可能值得尝试。见https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-deploy-existing-app

汉斯