2011-07-22 9 views
2

は、私は、Mac OSの中で、このようなコードを実行すると:Javaのローカルアプリケーションを使用してリモートマシン上のPDFファイルを開きますか?

Runtime.getRuntime.exec("open testFile.pdf"); 

のMac OSは、ローカルのPDFファイルを開くには、Acrobatを実行します。

ファイルがリモートマシン上にある場合、どうすればいいですか?
\\remoteHost\share\testFile.pdf

私はこのようなことをやろう:
Runtime.getRuntime.exec("open \\\\remoteHost\\share\\testFile.pdf");

が、私は失敗しました。

ありがとうございます!

+0

Runtime.getRuntime.exec( "open \\\\ remoteHost \\ share \\ testFile.pdf"); ' –

答えて

0

Runtime.getRuntime().exec(String)は、文字列をOSに渡して処理するだけです。したがって、コマンドを実行する場合は、

open \\remoteHost\share\testFile.pdf 

exec()に渡す必要があります。 (\\により、すべての\を置き換え)もちろん

Runtime.getRuntime().exec("open \\\\remoteHost\\share\\testFile.pdf"); 

を\をエスケープすることを忘れないでください、プログラムを実行しているユーザーは、リモートマシンにアクセス権を持っている必要があります。別のユーザーを設定する必要がある場合は、開いているプログラムのコマンドラインパラメータを使用します。

0

コマンドを使用しているときに、SMB共有のパスを直接指定することはできません。 にする場合は、その共有をローカルディレクトリとしてマウントする必要があります。説明はhttp://osxdaily.com/2009/09/24/access-and-mount-an-smb-share-via-command-line/を参照してください。

しかし、そのような解決策は非常に脆弱です。あなたはより信頼性の高いソリューションをしたい場合、私は、ファイルをローカルにダウンロードするJCIFS(http://jcifs.samba.org/)を使用することをお勧めして、ダウンロードしたファイルを開くために

Desktop.getDesktop().open(pdfFile); 

を使用すると思います。

+0

ありがとう!しかし、私はローカルのMac OS Xでリモートファイルを変更したいので、私はローカルにファイルをダウンロードすることはできません – hill

関連する問題