servicio ser para marcado existe especificado error eliminado dependencia archivo java powershell jar properties

java - existe - el servicio especificado se ha marcado para ser eliminado windows 10



¿Cómo pasar propiedades a jar de Powershell? (3)

Intente iniciar utilizando el siguiente patrón:

java -Duser.language=en -jar any.jar

Eso supone que user.language se entiende como una propiedad del sistema. Si lo quiso decir como un argumento de línea de comando, cámbielo a:

java -jar any.jar -Duser.language=en

Estoy realmente sorprendido de que la línea de comandos que mencionaste funcione en absoluto fuera de powershell (aunque he confirmado que también funciona bien para mí, incluso en Linux) y también es un poco extraño que las cosas funcionen de manera diferente dentro y fuera de powershell .

De java -help :

Usage: java [-options] class [args...] (to execute a class) or java [-options] -jar jarfile [args...] (to execute a jar file) where options include: ... -D<name>=<value> set a system property ...

Así que, básicamente, siempre debe colocar el nombre de archivo JAR directamente después de la opción de línea de comando -jar y cualquier opción de JVM (como establecer propiedades del sistema con -D ).

He estado usando Powershell-1.0 para las necesidades de línea de comandos por un tiempo, en lugar de cmd.exe. Desafortunadamente, todavía hay algunas advertencias cuando se usa Java. Necesito pasar una propiedad a un contenedor, así:

java -jar -Duser.language=en any.jar

Esta línea funciona bien en cmd.exe, pero no en Powershell, ya que busca otro jar: no se puede acceder al archivo jar user.language = en

Usar citas no ayuda.

¿Es factible en Powershell-1.0, o extraño algo en Java?

Gracias por adelantado,

Saludos,

jgran


Usar comillas funciona bien para mí en PowerShell en Windows 7.

java "-Dmy.property=value" -jar myjar.jar

Tenga cuidado: el nombre del jar debe colocarse justo después de -jar , y los argumentos que se colocan después de -jar myjar.jar se pasarán al programa dentro de jarFile.


Eche un vistazo a mi respuesta a esta pregunta . Tenga en cuenta cómo puede usar echoargs.exe para diagnosticar este tipo de problemas. Lo más probable es que la solución sea citar el parámetro, por ejemplo:

java -jar "-Duser.language=en" any.jar

Puede probar eso usando echoargs (de PowerShell Community Extensions ):

echoargs -jar "-Duser.language=en" any.jar Arg 0 is <-jar> Arg 1 is <-Duser.language=en> Arg 2 is <any.jar>