Wie öffne ich eine Datei mit dem standardmäßig zugeordneten Programm in Java? (zum Beispiel eine Filmdatei)
Wie öffne ich eine Datei mit dem standardmäßig zugeordneten Programm in Java? (zum Beispiel eine Filmdatei)
Antworten:
Sie können verwenden Desktop.getDesktop().open(File file)
. Weitere Optionen finden Sie in der folgenden Frage: " [Java] Wie öffne ich den bevorzugten Editor des Benutzersystems für eine bestimmte Datei? "
.edit()
kann auch verwendet werden, wenn der Zweck des Öffnens die Bearbeitung ist. Einige Systeme verfügen über unterschiedliche Standardanwendungen zum Anzeigen und Bearbeiten. .open()
öffnet den Viewer.
SwingHacks bietet eine Lösung für ältere Java-Versionen.
Ich denke, sie haben das Runtime-Objekt verwendet, um den Befehl 'start' unter Windows auszuführen, und es gibt einen ähnlichen Befehl auf dem Mac.
Bitte schön:
File myFile = new File("your any type of file url");
FileOpen.openFile(mContext, myFile);
Erstellen Sie eine andere Klasse innerhalb des Pakets:
// code to open default application present in the handset
public class FileOpen {
public static void openFile(Context context, File url) throws IOException {
// Create URI
File file=url;
Uri uri = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_VIEW);
// Check what kind of file you are trying to open, by comparing the url with extensions.
// When the if condition is matched, plugin sets the correct intent (mime) type,
// so Android knew what application to use to open the file
if (url.toString().contains(".doc") || url.toString().contains(".docx")) {
// Word document
intent.setDataAndType(uri, "application/msword");
} else if(url.toString().contains(".pdf")) {
// PDF file
intent.setDataAndType(uri, "application/pdf");
} else if(url.toString().contains(".ppt") || url.toString().contains(".pptx")) {
// Powerpoint file
intent.setDataAndType(uri, "application/vnd.ms-powerpoint");
} else if(url.toString().contains(".xls") || url.toString().contains(".xlsx")) {
// Excel file
intent.setDataAndType(uri, "application/vnd.ms-excel");
} else if(url.toString().contains(".zip") || url.toString().contains(".rar")) {
// WAV audio file
intent.setDataAndType(uri, "application/x-wav");
} else if(url.toString().contains(".rtf")) {
// RTF file
intent.setDataAndType(uri, "application/rtf");
} else if(url.toString().contains(".wav") || url.toString().contains(".mp3")) {
// WAV audio file
intent.setDataAndType(uri, "audio/x-wav");
} else if(url.toString().contains(".gif")) {
// GIF file
intent.setDataAndType(uri, "image/gif");
} else if(url.toString().contains(".jpg") || url.toString().contains(".jpeg") || url.toString().contains(".png")) {
// JPG file
intent.setDataAndType(uri, "image/jpeg");
} else if(url.toString().contains(".txt")) {
// Text file
intent.setDataAndType(uri, "text/plain");
} else if(url.toString().contains(".3gp") || url.toString().contains(".mpg") || url.toString().contains(".mpeg") || url.toString().contains(".mpe") || url.toString().contains(".mp4") || url.toString().contains(".avi")) {
// Video files
intent.setDataAndType(uri, "video/*");
} else {
//if you want you can also define the intent type for any other file
//additionally use else clause below, to manage other unknown extensions
//in this case, Android will show all applications installed on the device
//so you can choose which application to use
intent.setDataAndType(uri, "*/*");
}
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
}
JavaFX
gehen Sie hier oder hier .