¿Cómo verificar el estado de los servicios de Windows desde un programa java?¿Encuentra el estado del servicio de Windows desde la aplicación Java?
Respuesta
Como mínimo, debe poder iniciar un proceso cmd.exe con el comando sc query service-name
y analizar el resultado para determinar el estado. No es bonito, pero al carecer de una API de Java para el administrador de servicios de Windows, esta sería una alternativa viable.
EDITAR - Lee el Javadoc para java.lang.ProcessBuilder, que te permitirá ejecutar un comando externo. Probablemente debería establecer la propiedad redirectErrorStream para que no tenga que manejar dos flujos de entrada (stdout y stderr), lo que hace que el diseño sea mucho más simple.
he buscado esta consulta sc, y funciona bien. ¿Puede decirme por favor cómo puedo ejecutar esta consulta desde Java? –
He editado mi respuesta para incluir un puntero a la API que necesitará para hacer esto. –
en el siguiente ejemplo se puede encontrar cómo se puede comprobar windws estado del servicio y se puede analizarse hacer determinada acción
import java.util.*;
import java.sql.*;
import java.io.*;
import java.text.*;
public class doscmd
{
public static void main(String args[])
{
try
{
Process p=Runtime.getRuntime().exec("sc query browser");
BufferedReader reader=new BufferedReader(new InputStreamReader(p.getInputStream()));
String line=reader.readLine();
while(line!=null)
{
if(line.trim().startsWith("STATE"))
{
if (line.trim().substring(line.trim().indexOf(":")+1,line.trim().indexOf(":")+4).trim().equals("1"))
System.out.println("Stopped");
else
if (line.trim().substring(line.trim().indexOf(":")+1,line.trim().indexOf(":")+4).trim().equals("2"))
System.out.println("Startting....");
else
if (line.trim().substring(line.trim().indexOf(":")+1,line.trim().indexOf(":")+4).trim().equals("3"))
System.out.println("Stopping....");
else
if (line.trim().substring(line.trim().indexOf(":")+1,line.trim().indexOf(":")+4).trim().equals("4"))
System.out.println("Running");
}
line=reader.readLine();
}
}
catch(IOException e1) { }
}
}
great answer waleed .. – bluelurker
El código anterior no devuelve nada. Cuando se depura, dice acceso denegado y nulo. –
- 1. Cómo crear un servicio de Windows desde la aplicación java
- 2. iniciar el servicio de Windows desde java
- 3. Comando de Windows para obtener el estado del servicio?
- 4. ¿Cómo obtener el nombre del servicio de Windows desde app.config
- 5. Lanzamiento de la aplicación GUI desde el servicio de Windows - La ventana no aparece
- 6. Crear servicio de Windows desde el ejecutable
- 7. necesita una manera de comprobar el estado del servicio de Windows mediante programación
- 8. ¿Cómo ejecutar la aplicación de consola desde el servicio de Windows?
- 9. Cómo crear un servicio de Windows desde java jar?
- 10. Juddi publica y encuentra el servicio
- 11. ¿Hay alguna manera, en Java, de verificar el estado de un servicio de Windows?
- 12. El estado del ServiceController no refleja correctamente el estado real del servicio
- 13. Despliegue del servicio de Windows
- 14. ¿Obtener tamaño de escritorio desde el servicio de Windows?
- 15. Encuentra los formularios abiertos en la aplicación de Windows C#
- 16. Dónde se encuentra el servicio web del servidor de informes
- 17. Alojamiento del servicio WCF en el servicio de Windows
- 18. Android detectando el estado táctil desde cualquier aplicación
- 19. Inicio de una aplicación de Windows desde un servicio de Windows
- 20. Instalar el programa Java como un servicio de Windows: ¿alternativa al servicio Java?
- 21. Cómo llamar al método desde el servicio de Windows
- 22. Cómo imprimir documentos PDF desde el Servicio de Windows
- 23. Captura de pantalla del proceso en el Servicio de Windows
- 24. Ejecutar la aplicación Java como servicio
- 25. Dónde poner el estado de la aplicación?
- 26. Cambiar el estado del botón de alternar desde otro botón
- 27. Ejecutar la aplicación Java en el inicio de Windows
- 28. Autenticación del servicio web ASP.NET desde una aplicación para iPhone
- 29. ¿Cómo acceder al servicio WCF RIA desde el servicio de Windows?
- 30. Cómo conectarse a sql-server con la autenticación de Windows desde el servicio de Windows?
posible duplicado de [¿Hay alguna manera, en Java, para comprobar el estado de las ¿un servicio de Windows?] (http://stackoverflow.com/questions/127299/is-there-any-way-in-java-to-check-on-the-status-of-a-windows-service) –
@ Péter Török: Esta podría ser una posible copia de la pregunta, pero ninguna de las respuestas a esa pregunta se refería a la respuesta relativamente simple basada en ProcessBuilder que he proporcionado. –