問題タブ [install4j]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - install4j インストール完了時の Java Web Start アプリケーションの起動
インストールの完了時に install4j Launcher を開始しようとしていますが、機能しません。ただし、ランチャーはスタート メニュー項目としては正常に機能します。これは、私のアプリケーションが Java Web Start を介して開始されたためであると考える理由があります (法的な理由によるものでなければなりません)。
install4j インストーラーで終了ボタンをクリックすると、次のようになります。
- インストーラ ウィンドウが消え、Java WebStart が起動します (スプラッシュが表示されます)。
- それ以上は何も起こりません (通常、私の Java アプリケーションはここから開始されます)。
Java ログを見ると、WebStart が実際に Java アプリを実行していることがわかりますが、ファイル C:\Users\UserName\AppData\Local\Temp\e4j2E4E.tmp_dir\jre\lib\ext \dnsns.jar はもう存在しません。このディレクトリは、install4j が実行する必要のある JRE を一時的に配置する場所のようです。
ファイル マネージャーで F5 キーを押すと、WebStart の実行後に JRE が削除されていることがわかります (おそらく install4j によるものだと思います)。これにより、Java アプリが失敗する理由が説明されます。
スタート メニュー ランチャーを (インストール後に手動で) 実行すると、Java アプリは (独自のサブフォルダーに) バンドルされている JRE を使用するため、すべて正常に動作します。
install4j が一時的な JRE を削除するのを防ぐにはどうすればよいですか? または、WebStart が別の (バンドルされた) JRE を使用して Java アプリを強制的に実行するようにするにはどうすればよいですか?
提案をお寄せいただきありがとうございます!
==EDIT== これが私のアプリケーションの開始方法です: install4j Launcher は、メインの Java アプリケーションを開始する javaws バイナリを開始する私の Java クラスを開始します。
install4j - install4j:コマンドライン引数をWindowsサービスに渡すにはどうすればよいですか?
install4jを使用してWindowsサービスを作成しましたが、すべてが機能しますが、コマンドライン引数をサービスに渡す必要があります。新しいサービスウィザードでサービスの作成時に構成できることはわかっていますが、引数をregisterserviceコマンドに渡すことを望んでいました。
または、次のように.vmoptionsファイルに配置します。
これを行う唯一の方法は、コードを変更してexe4j.launchNameを介してサービス名を取得し、その特定のサービスに必要な構成を持つ他のファイルまたは環境変数をロードすることです。私は過去にJava用の他のサービス作成ツールを使用しましたが、それらはすべて、ユーザーが登録したコマンドライン引数を直接サポートしていました。
install4j - 複数のスタートメニューとプログラムグループエントリを作成します-シングルユーザーまたはすべてのユーザーのいずれか
私のインストーラーには「プログラムグループの作成」アクションがあり、最初にユーザーに、現在のユーザーのみまたはすべてのユーザーのスタートメニューエントリを作成するかどうかを尋ねます。インストーラーはさらに、複数のプログラムグループ(「プログラムグループの作成」を使用)とスタートメニュー(「スタートメニューエントリの作成」を使用)を作成します。
これらの各グループには、「すべてのユーザー用に作成」という設定があります。すべてのプログラムグループとスタートメニューエントリを中央フラグを使用して制御できるようにする方法を知りたいです。つまり、すべてのユーザーまたは現在のユーザーのみに対して作成されます。
ハッキーな方法の1つは、両方に2セットのエントリを作成することです。1つは「すべてのユーザー用に作成」フラグをオンにし、もう1つはオフにします。次に、条件式を使用して、システム変数「sys.programGroupAllUsers」の値を読み取ります。
より良い方法はありますか、エントリのセットを1つだけ作成したいと思います。
install4j - Install4J を使用して、アプリケーションへのショートカットを自動起動フォルダーに配置します。
Install4J を使用してアプリケーションをビルドしています。
作成したアプリケーションを Windows の autostart ディレクトリに Install4J でコピー (ショートカットを作成) する方法はありますか? sys.startupDir という名前のインストーラー変数があることは知っていますが、これは autostart ディレクトリを指す必要があります。必要なことを実行するアクション/スクリプトを作成する方法がわかりません。
install4j - 空白と引用符を含む-Dオプションを使用したInstall4jコマンドラインコンパイラ
install4Jコマンドラインコンパイラ(install4jc)を使用してアプリケーションをビルドしようとしています。
-D NAME = VALUE構文を使用して、いくつかの変数をコンパイラーに渡します。
これが私のコマンドです:
そのコマンドを実行すると、次のようになります。
次のようにapplication.shortName="my Short Name"を削除すると、次のようになります。
できます。
引用符で複数のオプションを使用できないのはなぜですか?
install4j - install4j - プログラムでコンパイラ変数を設定する方法は?
インストーラー変数をプログラムで設定できることは知っています。しかし、 setCompilerVariables() メソッドが表示されません....
ユーザーの選択に基づいて、インストールするコンポーネントを変更したいと考えています。
installation - install4j でビルドしたインストーラーに埋め込まれたファイルを unzip および untar するにはどうすればよいですか?
新しいチーム/プロジェクトの install4j を評価しています。計画は、プラットフォームに固有の自家製インストーラーのセットを単一の install4j インストーラーに置き換えることです。チーム ビルドの出力用の単純なインストーラーを作成しました。Install4j は、ビルドの出力を自己解凍ファイルに取り込み、実行時にディレクトリに配置するシンプルなインストーラーで優れた仕事をします。
ただし、ビルド出力に埋め込まれているファイルを解凍および解凍しようとすると、以下の例外で失敗します。
install4j は、gzip された tar ファイルを「すぐに」処理できませんか? これにはカスタム コードを記述する必要がありますか? それとも、別の種類のエラーのように見えますか? チェックしたところ、コマンドラインから指定したディレクトリに自分でファイルを解凍および展開できます。
これは、MySQL、Tomcat などのインストーラーで複数のアーティファクトを処理するために必要なことです。
java - install4j でパッケージ化された org.apache.tools.tar.* クラスを使用する場合、Java で GNU の長いファイル名を処理するにはどうすればよいですか?
私のインストーラーに組み込まれている mysql や tomcat などの tarball の解凍と解凍を処理する実行スクリプトを install4j に追加しようとしています。これらの tar を ant のビルド プロセスの一部として展開できることはわかっていますが、少なくとも 1 つのユース ケースではそれができません。
org.apache.tools.tar.TarEntry および TarInputStream クラスを使用して、Run Script アクションに以下のコードを含めました。これはかなりうまく機能していますが、1 つのバグがあります。
この実装を使用すると、99 文字を超えるファイル パスが切り捨てられ、結果のファイルが最上位ディレクトリに展開されます。
これが私の実装のバグなのか、Apache ツール クラスの問題なのかを突き止めようとしています。99 文字を超える場合、tarEntry.getName() がパス全体を返していないようです。TarInputStream の機能を書き直さなくても、これを回避する簡単な方法はありますか? Tar.Entry には isGNULongNameEntry メソッドがありますが、これが true を返したときにファイルをどこに置くべきかを説明する信頼できる方法を見つけられないようです。
助言がありますか?
java - install4j: リンクを介してアプリケーションを起動する最良の方法は何ですか?
私はJavaアプリケーションを持っています。これは、追加のライブラリを含む JAR ファイルのみです。Windows では、インストールされている JRE に問題がなければ、ダブルクリックするだけで十分です。
今私はinstall4jでインストーラーを作りたいです。単純なリンクに java.exe または javaw.exe を使用できません。これを行うと、インストール中にリンクが作成されません。ヒット時には JAR ファイルを直接使用しますが、これは各コンピューターでは機能しないと確信しています。
インターネットで解決策を探しましたが、欲しい答えが見つかりませんでした。
install4j (EXE ファイル) でランチャーを作成する必要がありますか、それともバッチ ファイルを使用する必要がありますか、それとももっと良い方法がありますか? 「javaw.exe -jar MyApp.jar」との単純なリンクが最善の方法だと思いますか?
wix - install4j では、アプリケーションの 32 ビット バージョンと 64 ビット バージョンの両方を 1 つのインストール パッケージに含めて、どちらをインストールするかをユーザーに決定させることはできますか?
install4j では、アプリケーションの 32 ビット バージョンと 64 ビット バージョンの両方を 1 つのインストール パッケージに含めて、OS が 64 ビットの場合にどちらをインストールするかをユーザーに決定させることはできますか? 3 つのプロジェクトを作成するのが最も簡単で最善の解決策でしょうか? つまり、1 人の親と 2 人の子供ですか。含まれているファイルの大部分はアーキテクチャ固有のものではなく、すべてを 1 つのプロジェクトにまとめたいので、これを行うのをためらっています。
また、別のインストーラー、特に社内の他のグループが使用している WiX がこれを達成できる場合、私は install4j に縛られていません。