특정 파일 보고서를 찾기 위해 파일 시스템을 스캔하고 테이블에 나열하는 프로그램 (GUI = JavaFX)이 있습니다. 이 XML 보고서는 웹 브라우저에서 XSLT로 렌더링됩니다. 이제 Java 응용 프로그램에서 이러한 보고서를 클릭하여 브라우저에 표시 할 수있게하려고합니다. 이미 핸들러를 작성 했으므로 올바른 URL이 결정됩니다. 내 Windows 시스템에서 이것은Java가 웹 브라우저에서 XML을 열도록 강요합니다.
file://localhost/C:/report.xml
입니다. XML은 문제가 아닙니다. 브라우저에서 수동으로 열면 모든 것이 잘 동작합니다.
java.awt.Desktop.getDesktop().
browse(new java.net.URI("file://localhost/C:/report.xml"));
이 HTTP URL을 (웹 사이트)에 대한 좋은 해결책이기 때문에, 그것은 항상 내 기본에 내 XML 파일을 엽니 다 : 나는 구글을 사용하고 브라우저에서 파일을 여는 방법을 묻는 경우는 항상 나에게 준다 텍스트 편집기 (예 : 메모장 + +). 따라서 데스크탑의 탐색 메소드는 실제로 탐색을 강제하지는 않지만 단순히 기본 열기 조작으로 넘어집니다.
그래서 질문은 : Java가 브라우저에서 "Open with>"Windows 기능과 유사한 XML을 강제로 열도록 할 수 있습니까? 여기
sscce (존재하지 않는 경우에도, 브라우저에서 파일을 액세스하려고한다) :public class XMLOpener {
public static void main(String[] args)
{
String fileURL = "file://localhost/C:/report.xml";
try {
java.awt.Desktop.getDesktop().browse(new java.net.URI(fileURL));
} catch (Exception e) {}
}
}
더 나은 도움을 받으려면 [sscce] (http://www.sscce.org)를 보내주십시오. – user1329572
감사합니다. ['Desktop.isDesktopSupported()'] (http://docs.oracle.com/javase/7/docs/api/java/awt/Desktop.html#isDesktopSupported%28%29)는 무엇을 반환합니까? – user1329572
Desktop.isDesktopSupported()는 true를 반환합니다. java.awt.Desktop.getDesktop()을 시도하면 browse (새 java.net.URI ("http://www.google.com")); 그것은 예상대로 브라우저를 엽니 다. –