1

このためにMACに.dmgをマウントするときにコマンドラインパラメーターを渡す必要があります.JSPを使用して動的に構成されたJNLPを使用しましapplication/x-java-jnlp-fileた。JSP の内容は次のとおりです。

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://10.40.42.134:8080/TestJNLP/">
 <information>
    <title>jnlp.JSP</title>
    <vendor>Sun Microsystems, Inc.</vendor>
 </information>
 <resources>
    <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
    <jar href="lib/faren2.jar" main="true" />
 </resources>
 <application-desc name="Dynamic Tree Demo Application" main-class="org.Test" width="300" height="300">
    <argument><%=request.getParameter("arg1")%></argument>  
    <argument><%=request.getParameter("arg2")%></argument> 
 </application-desc>
 <security>
    <all-permissions/>
 </security>
</jnlp>

JNLP は、渡したパラメーターを使用して正しく呼び出されます。

さらに進むと、次の 2 つの問題があります。

まず、JNLP をトリガーした後、ユーザー システムに .dmg を保存するためにメイン クラスが呼び出しますが、JNLP クライアント (MAC で開く [保存] ダイアログ) は、メソッドの呼び出し中に渡す名前と拡張子を無視しsaveFileDialogます。FileSaveService渡す名前と拡張子を JNLP クライアントに適用させるにはどうすればよいですか?

次に、プログラムでマウントできるように、ユーザーが .dmg を保存したパスを知るにはどうすればよいですか? これは、ユーザーがファイルを保存したパスを知ることが非常に重要です。

4

1 に答える 1

2

私はこれが可能だとは思わないFileSaveService

へのパスと拡張子の引数saveFileDialogは単なるヒントです。実装はそれらを自由に無視できます。

FileContents.getName()ディレクトリではなく、名前だけを教えてくれます。これは仕様によるものです。に依存する JNLP アプリFileSaveServiceは信頼されていないと見なされ、パスはプライバシーの問題になる可能性があります。という名前のディレクトリに DMG ファイルを保存することを選択した場合、C:\Users\S_Rushdie\My Documents\Porn後でサーバーにアップロードされるログにプログラムがそれを含めたくない場合があります。

より詳細な制御が必要な場合は、アプリに署名して付与し、代わりにand<all-permission/>を使用する必要があると思います。JFileChooserFileOutputStream

于 2012-06-19T13:11:41.793 に答える