Java에서 기본 관련 프로그램으로 파일을 어떻게 열 수 있습니까? (예 : 영화 파일)
답변:
사용할 수 있습니다 Desktop.getDesktop().open(File file)
. 다른 옵션에 대해서는 다음 질문을 참조하십시오. " [Java] 주어진 파일에 대한 사용자 시스템 기본 편집기를 여는 방법? "
.edit()
열기 목적이 편집인 경우에도 사용할 수 있습니다. 일부 시스템에는보기 및 편집을위한 다른 기본 응용 프로그램이 있습니다. .open()
뷰어가 열립니다.
SwingHacks 에는 이전 버전의 Java에 대한 솔루션이 있습니다.
나는 그들이 런타임 개체를 사용하여 Windows에서 '시작'명령을 실행했으며 Mac에도 비슷한 명령이 있다고 생각합니다.
여기 있습니다 :
File myFile = new File("your any type of file url");
FileOpen.openFile(mContext, myFile);
패키지 내에 다른 클래스를 만듭니다.
// 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
로 이동 하십시오 .