Windows: crie um serviço para executar um jar executável sem nenhuma biblioteca externa

1

Eu tenho um arquivo jar executável de inicialização que pode ser executado em qualquer prompt de comando chamando java -jar filename.jar .

Eu quero criar um serviço sem fazer download de bibliotecas externas para o snippet de código acima.

Ajude-me se houver um caminho à frente.

    
por Prateep Gedupudi 22.11.2017 / 05:10

1 resposta

0

I want to create a service with out downloading any external libraries

Não.

Um serviço do Windows é, por definição, seu próprio binário.

Existe o binário svchost.exe, que significa "Service Host", que pode hospedar vários serviços Microsoft compartilhados, mas você não pode compartilhar com o serviço de terceiros. Não é suportado. A principal razão é que uma falha ou defeito em um serviço pode afetar todos os serviços em uma instância svchost.exe compartilhada. E ninguém quer arriscar compartilhar sua coisa estranha em Java com serviços fundamentais do SO em um svchost compartilhado.

[ Referência ]

Nos velhos tempos do Win2000, havia um binário "srvany.exe", mas isso é tão antigo e decrépito que ninguém deveria usá-lo em 2017.

Uma simples pesquisa no Google informa que existe algo como "Java Service Wrapper" ou outra coisa chamada "Non-Sucking Service Wrapper" ... mas estes são binários de terceiros separados que não fazem parte do Windows e definitivamente não são suportados pela Microsoft, portanto, a resposta à sua pergunta ainda é 'Não'.

O resultado é que você precisa do seu próprio processo de hospedagem, não fornecido pela Microsoft, para hospedar seu serviço estranho.

    
por 22.11.2017 / 05:21