当社の社内Javaアプリケーションは、Webページ、MS Word文書、MS Excel文書、PDFファイルなどのURLを含むさまざまな時点でさまざまなhttp URLを起動します。JavaのBasicService.showDocument()への呼び出しからすべてのURLを傍受するAdobe Acrobat
50以上のマシンでは、URLの起動がうまく機能し、正しいアプリケーションが特定のページ/ドキュメントを正しく開きます。ただし、Adobe Acrobatは(関係なく、ターゲットがPDFであるかどうかの)すべてのURLを開こうとすると、失敗(でもPDF文書上)とされる1台の厄介なマシン上:
この文書を開くときにエラーが発生しました。ファイル名、ディレクトリ名、またはボリュームラベルの構文が正しくありません。
URLを起動するためのコードは次のとおりです。
URL url = new URL("http://www.example.com");
BasicService bs = (BasicService)ServiceManager.lookup("javax.jnlp.BasicService");
boolean worked = bs.showDocument(url);
worked
変数は、コールの後に真です。役に立つかもしれ
その他の見所:
- アプリケーションは、Java Webスタート内で実行されます。
- 同じマシン上で動作するアプレットは、URLを正しく開くことができます
AppletContext.showDocument()
- Windowsの[実行...]ダイアログにURLを正しく入力すると、URLが正しく起動されます。
- JREとAdobe Acrobatの両方を再インストールしました。
ご提供いただけるアドバイスやアドバイスをお寄せいただきありがとうございます。
更新:
次のデバッグコードは、次の出力を生成します。
String[] services = ServiceManager.getServiceNames();
if(services!=null) {
for(int i=0;i<services.length;i++) {
System.out.println("Available Service: "+services[i]);
}
}
BasicService bs = (BasicService)ServiceManager.lookup("javax.jnlp.BasicService");
System.out.println(url);
System.out.println(bs);
System.out.println("bs.getCodeBase():"+bs.getCodeBase());
System.out.println("bs.isOffline():"+bs.isOffline());
System.out.println("bs.isWebBrowserSupported():"+bs.isWebBrowserSupported());
boolean worked = bs.showDocument(url);
System.out.println("bs.showDocument:"+worked);
} catch(UnavailableServiceException ue) {
System.out.println("UnavailableServiceException thrown");
ue.printStackTrace();
}
Available Service: javax.jnlp.BasicService
Available Service: javax.jnlp.FileOpenService
Available Service: javax.jnlp.FileSaveService
Available Service: javax.jnlp.DownloadService
Available Service: javax.jnlp.ClipboardService
Available Service: javax.jnlp.PersistenceService
Available Service: javax.jnlp.PrintService
Available Service: javax.jnlp.ExtendedService
Available Service: javax.jnlp.SingleInstanceService
http://<snip>
[email protected]
bs.getCodeBase():http://xxx.xxxxxx.com:8080/
bs.isOffline():false
bs.isWebBrowserSupported():true
bs.showDocument:true
ありがとうございます。私は上記のオリジナルの投稿を編集しました... FileOpenServiceが存在するかのように見えます...? – cagcowboy