Necesito encontrar un abridor de archivos predeterminado para un archivo dado en Windows para poder personalizar los argumentos del comando y abrir el archivo con el abridor/visor predeterminado.Cómo encontrar el Abridor de archivos predeterminado con Java?
Mi escenario de uso real es abrir múltiples archivos multimedia con el reproductor multimedia predeterminado del usuario para que todos los archivos se agreguen a la lista de reproducción del usuario (para los jugadores que pueden abrir múltiples archivos en la misma intancia). Para el sistema operativo que no sea Windows, uso el método Desktop.open(File file)
(simplemente no me refiero a la función de abrir varios archivos para sistemas operativos que no sean Windows), no puedo encontrar ningún método que pueda abrir varios archivos aparte de personalizar los argumentos del comando y ejecutarlo usando exec() método de la clase Runtime. Yo uso somethig similar a esto:
private void playItems2(List<File> fileList, String playerBinary) {
String args = " ";
for (File file : fileList) {
args += "\"" + file.getAbsolutePath() + "\" ";
}
try {
String command = playerBinary + args;
Runtime rt = Runtime.getRuntime();
Process p = rt.exec(command);
} catch (Exception exc) {/*handle exception*/
System.err.println("Run Player Exc:" + exc.getMessage());
}
}
estoy usando ruta especificada usuario para la playerBinary
, lo que necesito es la detección automática reproductor predeterminado para el primer artículo de fileList
y lo uso como playerBinary
.
También he examinado las soluciones Rundll32.exe y cmd.exe /start pero no funcionaron para mi escenario de uso.
Esta pregunta no se debe confundir con this y this.
Si solo está buscando Windows, no hay una forma pura de Java para hacerlo. Lea el registro o use bibliotecas de terceros. – cx0der