ローカルに作成されたファイル (PDF、Word など) を署名付きアプレット内から起動できない大規模なユーザー グループが 1 つあります。Windows エクスプローラーからファイルをダブルクリックすると、ファイルが起動するため、起動アプリへのファイルの関連付けが認識されます。技術サポートは、UAC が有効になっているマシンにリモートでログインし、アプレットの読み込みに問題がなく、問題なくローカル ファイルを起動できます。これは、大規模なグループには共通のローカル設定があると思わせます。ユーザーは Windows XP (または 7、不明) で Java 1.6u31 を実行しています。エラーは表示されず、Java コンソールにも何も表示されません (問題が見当たらないため、すべて噂話です)。この動作を引き起こす可能性のあるローカル PC 設定について何か提案はありますか? コードによると、問題は Desktop がサポートされているように見えますが、Desktop.Action.OPEN はサポートされていません。なぜ何か提案はありますか?ありがとう。
以下を使用してファイルを起動しています。
/*
//old way that would work for Windows prior to Java 1.6
//cmd = System.getenv("windir") +"\\system32\\"+"rundll32 SHELL32.DLL,ShellExec_RunDLL " + cmd;
//cmd = "open "+cmd; // Mac for PDF only?
//try{
// Runtime.getRuntime().exec(cmd);
//} catch (Exception e) {
// //handle error
//}
*/
Desktop desktop = null;
if (Desktop.isDesktopSupported()) {
desktop = Desktop.getDesktop();
if (desktop.isSupported(Desktop.Action.OPEN)) {
try {
desktop.open(new File(file));
return;
} catch (IOException e) {
//Error launching the file
e.printStackTrace();
JOptionPane.showMessageDialog(theFrame,
"Unable to launch the file.",
"Document Error", JOptionPane.ERROR_MESSAGE);
return;
}
}
} else {
//This OS cannot launch the file
JOptionPane.showMessageDialog(theFrame,
"This operating system is unable" +
"\nto launch external files" +
"\nfrom within this application.",
"Document Error", JOptionPane.ERROR_MESSAGE);
return;
}