Java 为RMI注册表创建windows服务

Java 为RMI注册表创建windows服务,java,windows,service,registry,rmi,Java,Windows,Service,Registry,Rmi,我想创建一个windows服务,用于在我的系统上启动RMI服务。我用于在cmd上运行此命令的命令是 C:\Program Files\Java\jdk1.7.0\U 67\jre\bin\rmiregistry.exe -J-Djava.rmi.server.useCodebaseOnly=false 11100 我已使用命令使用windows sc.exe创建了一个服务 sc.exe创建注册表\u服务binPath=“C:\Program Files\Java\jdk1.7.0\u 67\jr

我想创建一个windows服务,用于在我的系统上启动RMI服务。我用于在cmd上运行此命令的命令是

C:\Program Files\Java\jdk1.7.0\U 67\jre\bin\rmiregistry.exe -J-Djava.rmi.server.useCodebaseOnly=false 11100

我已使用命令使用windows sc.exe创建了一个服务

sc.exe创建注册表\u服务binPath=“C:\Program Files\Java\jdk1.7.0\u 67\jre\bin\rmiregistry.exe -J-Djava.rmi.server.useCodebaseOnly=false 11100“

但在开始这项服务时,我突然听到一句话

“Error1053:服务未响应中的启动或控制请求 及时时尚。”


有人能告诉我哪里出错了吗?

您不能将任意.exe用作Windows服务。有特殊要求。您需要使用Windows Service Wrapper,您可以从Microsoft下载。

我知道我对这个问题的回答很晚,但它可能会帮助其他有同样问题的人

要将RMI安装为windows服务,可以使用Apache的ProRun(prunsrv)。使用ApacheProCurn,您不需要从Microsoft下载任何东西。您也不需要下载任何其他内容。我用了很多时间来设置Windows服务,并将Java和其他exe程序包装为本机Windows服务。看看:

以下是如何使用ProLUN将RmiRegistry.exe作为windows本机服务运行的示例

  • 要启动RMI注册表,我们使用RmiRegistry.exe程序
  • 为了停止RMI注册表,我们使用Windows TaskKill.exe程序
  • 在命令窗口中,给出以下命令:

    将RmiRegistry.exe作为本机windows服务安装

    set svcBaseDir="D:\nativeService"
    
    %svcBaseDir%\bin\prunsrv64 //IS//RmiRegistrySvc ^
            --DisplayName="RMI Registry Service" ^
            --Install=%svcBaseDir%\bin\prunsrv64.exe ^
            --StartMode=exe ^
            --StopMode=exe ^
            --StartImage=<java install dir>\bin\rmiregistry.exe ^
            --StartParams=-J-Djava.rmi.server.useCodebaseOnly=false#11100 ^
            --StopImage=C:\Windows\System32\taskkill.exe ^
            --StopParams=/F#/IM#rmiRegistry.exe ^
            --LogPath=%svcBaseDir%\logs ^
            --StdOutput=auto ^
            --StdError=auto ^
            --LogPrefix=Native-JNI- ^
            --LogLevel debug ^
            --ServiceUser <your windows domain>\<service user name> ^
            --ServicePassword <service password> ^
            --Description="Runs the RMI Registry as a Windows Service" ^
            --Startup=auto
    
    set svcBaseDir=
    
    一旦RmiRegistry.exe作为本机windows服务安装,就可以使用windows的服务管理器启动、停止和重新启动它,就像任何其他本机windows服务一样

    在前台测试或运行RmiRegistry.exe本机windows服务(安装后)

    从windows卸载并删除RmiRegistry.exe本机windows服务

    %svcBaseDir%\bin\prunsrv64 //DS//RmiRegistrySvc
    
    请注意,64位prunsrv仅用于64位服务器/计算机,而32位prunsrv可用于32和64台服务器/计算机

    我已将下载的prusrv.exe重命名为prusrv64.exe,以便在所有64位计算机上使用。这有助于区分32位和64位版本的prusrv.exe实用程序

    %svcBaseDir%\bin\prunsrv64 //TS//RmiRegistrySvc
    
    %svcBaseDir%\bin\prunsrv64 //DS//RmiRegistrySvc