0

次のサンプル jnlp があります。

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="$$codebase" href="$$name">
    <information>
        <title>Some Example</title>
        <vendor>Some Sample Vendor</vendor>
        <homepage href="http://www.somesamplevendorhomepage.com"/>
        <description>Some Sample Description</description>
        <icon kind="splash" href="link_to_some_splash.jpg"/>
        <offline-allowed/>
    </information>
    <security>
        <all-permissions/>
    </security>
    <update check="always" policy="always"/> 
    <application-desc main-class="com.some.sample.Main">
        <argument>--URL=SAMPLE_DB_NAME=http://localhost:<db_port>/webapplication/creds/auth</argument>
        <argument>--UserTimeout=350</argument> 
    </application-desc>
    <resources>
        <j2se version="1.7+" />
        <jar href="com.some.sample_1.0.0.jar"/>
        .
        .
        .
    </resources>
</jnlp>

(フォーマットやその他の不一致は無視してください - 重要なのは引数の部分だけです)

引数タグ内に変数db_​​portがある場合、 javawsで jnlp を実行するときにこの変数に値を渡す方法はありますか?

例: javaws /path/to/sample.jnlp 31022


編集:

JNLP は、(Windows では) AppData\LocalLow\Sun\Java\Deployment\cache の下にあるキャッシュ フォルダーに JAR をダウンロードします。ダウンロードした JAR に直接引数を提供してアプリを実行する方法を得るために、ダウンロード JAR (私のアプリには複数の JAR ファイルがあります) を使用する方法はありますか?

例えば:

jar -jar app.jar --URL=SAMPLE_DB_NAME=http://localhost:<db_port>/webapplication/creds/auth

PS: キャッシュ フォルダーに保存されているファイルには、計算されて生成された名前が付けられており、.jar 拡張子がないことを理解しています。ただし、Java コントロール パネル GUI から、または「javaws -viewer」を使用した CMD/PS から、jnlp として使用されているファイルを特定して起動することができました。一部の JAR を使用してアプリを起動する方法や、引数を渡すことができるようにするために「親」のものを作成する方法があるかどうか疑問に思っていました。

4

1 に答える 1

0

このトピックに関するドキュメントは意図的に欠けているようですが、ドキュメントでは、コマンド ライン パラメータをjavaws実行可能ファイルに渡す方法として‑userConfigフラグを使用することを推奨しています。

例えば

javaws /path/to/sample.jnlp -userConfig port 31022

ドキュメントには、この例はありません。GitHub を検索したところ、ほんの一握りの結果javaws userConfigしか得られなかったので、これはほとんど使用されていない機能のようです。

<port>あなたの質問は、別の変数に含まれる変数について具体的に尋ねているため、直接サポートされているものではありません。<port>代わりに、ソースにアクセスできると仮定して、追加の変数とメイン クラス内での検索/置換を使用してワイルドカードまたはパラメーター化する方法を見つける必要があります。ソースにアクセスできない場合は、手動で JNLP を作成する必要があり、署名付きファイルの場合は追加の作業が必要になる可能性があります。

于 2018-02-06T19:10:36.530 に答える