問題タブ [launch4j]
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 - lwjgl dll を launch4j にリンクする方法
launch4j を使用して jar を exe としてラップしようとしています。ただし、lwjgl ライブラリを使用していて、ネイティブ dll のリンクに問題があります。私のディレクトリ構造は次のとおりです。
次のパスを含むトップ ディレクトリがあります: top/lib/lwjgl/native/win32 ここに、lwjgl dll が含まれています。
私のjarを含むdistディレクトリもあります top/dist/myapp.jar
次のコマンドを使用して、dist ディレクトリ内のコマンドラインからプログラムを実行できます。
java -ea -Djava.library.path=../lib/lwjgl/native/win32 -jar app.jar
そしてそれは完全に機能します。ここで、-ea -Djava.library.path=../lib/lwjgl/native/win32 のコマンドライン オプションを使用して、dist ディレクトリ内に存在するように launch4j xml ファイルを定義しました。
ただし、exe ファイルを実行しようとすると、不満足なリンク エラーが発生します。(つまり、lwjgl dll が見つからないということです)。
これを複数の異なる方法で定義しようとしました。changedir を ../ として定義し、 -ea -Djava.library.path=lib/lwjgl/native/win32 を使用し、exe をトップ ディレクトリに移動して /dist/app.jar と lib パスを使用しようとしました何も機能していないようです。
誰かが以前にこれに似た問題を抱えていましたか? launch4j に dll パスを認識させるにはどうすればよいですか?
ありがとう。
windows-vista - プログラム互換性アシスタントからメッセージが表示されるのはなぜですか?
自分のプログラムをセットアップすると、「プログラム互換性アシスタント」から、プログラムが正しくインストールされていないというメッセージが表示されますが、すべて正しくインストールされています。
アンインストーラーと同じ問題があります。問題は Vista で発生します。私はlaunch4jを使用しています。
このメッセージが表示される理由 顧客に表示されないというこのメッセージを削除するにはどうすればよいですか?
java - lauch4jhelloworldプログラム
「helloworld」Javaプログラムを作成し、lauch4jを使用して実行可能jarを.exeファイルに変換しました。cmdで実行しようとしましたが、何も出力されませんでした。また、launch4jで実行しようとしました。ログは次のことを示しています:実行中:C:\ Documents and Settings \ cnbq84 \ Desktop\helloworld.exe。ただし、「HelloWorld」は表示されません。
「HelloWorld」メッセージを表示するにはどうすればよいですか?
ありがとう
これが私の設定ファイルです:
java - Windows XP での Lauch4J/NSIS インストーラーのコード署名?
ユーザーがインストーラーをクリックしたときに不明なベンダーが表示されないように、コードに署名する手順は何ですか?
私のセットアップは、
アプリケーションは Java ベースです。jar を launch4j でラップします。 インストーラーは nsis に基づいています。
私のビルド プラットフォームは xp です。
インストールが完了すると、もう1つ、インストールがvistaではなくnsisから成功しなかったというポップアップが表示されます。どうすればそれを取り除くことができますか?
java - launc4j javaを使用してexeを作成します
luunch4j で .exe ファイルを作成し、Java で build.xml ant ファイルを作成しましたが、.exe をクリックすると、「メイン クラス プログラムが終了するのが見つかりませんでした」というメッセージが表示されます。.jar ファイルをクリックすると、「メイン クラス マニフェスト属性の読み込みに失敗しました」というメッセージも表示されます。何が問題ですか?
java - アプリケーションが別のプロセスによって作成されたミューテックス参照を保持する理由/方法は?
私はこのやや変わったプロセス構造を持っています:
- Launch4J が Java アプリケーションを起動します。Java アプリケーションに単一インスタンス機能を提供するミューテックスを作成します。
- Java アプリケーションは、複数のインスタンスを持つことができる VB6 アプリケーションを開始します。
- Java アプリケーションが終了しても、VB6 アプリケーションはまだ実行されています。(望ましい行動)
問題は、Launch4J によって作成されたミューテックスが、VB6 アプリケーションの終了後にのみ解放されることです。そのため、Java アプリケーションを再度開始することはできません。
なぜこれが起こるのでしょうか?私はミューテックスを明示的に開いていません...
CreateProcess
最初はwithを使用している Java が原因ではないかと疑っていましたが、たとえば、bInheritHandles == true
起動すると問題は発生しません。notepad.exe
編集:私はまだこの問題を抱えています。どんなポインタでも大歓迎です!
java - -Launch4jのサーバーオプション?
私はlaunch4jのWebサイトをざっと見ていて、-server
プログラムオプションの設定方法がわからないようです。将来のオプションになる可能性があることを示す古いフォーラム投稿がありますが、それ以上の詳細はありません。
Launch4jを使用してJVMをサーバーモードで実行することは可能ですか?
java - Java アプリケーションを Windows 7 タスクバーに固定する
私は Windows 7 で Java アプリケーションのラッパーとして Launch4j を使用しています。私の理解では、これは本質的にそのインスタンスをフォークjavaw.exe
し、次に Java コードを解釈します。その結果、アプリケーションをタスク バーにピン留めしようとすると、代わりに Windows がピン留めされますjavaw.exe
。必要なコマンド ラインがなければ、アプリケーションは実行されません。
ご覧のとおり、Windows は Java がホスト アプリケーションであることも認識していません。アプリケーション自体は「Java(TM) Platform SE バイナリ」として記述されています。
HKEY_CLASSES_ROOT\Applications\javaw.exe
値を追加するためにレジストリ キーを変更しようとしましたIsHostApp
。これにより、アプリケーションのピン留めが完全に無効になり、動作が変更されます。明らかに私が欲しいものではありません。
Windows が 1 つのアプリケーションのインスタンスをどのように解釈するか(およびこの質問で説明されている現象) について読んだ後、Java アプリケーションにアプリケーション ユーザー モデル ID (AppUserModelID) を埋め込むことに興味を持つようになりました。
これは、Windowsに固有の を渡すことで解決できると思いAppUserModelID
ます。これにはshell32
方法がありSetCurrentProcessExplicitAppUserModelID
ます。Gregory Pakosz の提案に従って、アプリケーションが の別のインスタンスとして認識されるように実装しましたjavaw.exe
。
これは効果がないように見えますが、関数はエラーなしで戻ります。理由を診断することは、私にとって謎のようなものです。助言がありますか?
実用的な実装
機能した最終的な実装は、 JNA を使用して渡す方法に関する私のフォローアップの質問に対する答えです。AppID
私は、Gregory Pakosz の JNI に対する素晴らしい回答に報奨金を授与し、私を正しい軌道に乗せました。
参考までに、この手法を使用すると、この記事で説明した API のいずれかを Java アプリケーションで使用できるようになると思います。
java - Javaパッケージツール-jsmooth、launch4j、onejarの代替
私はJavaアプリをパッケージ化するためにこれらの3つのオープンソースツールを使用しましたが、それらはすべてアバンダンウェアのように見えます。3つすべてが非常に優れたソフトウェアです。今のオプションは何ですか?(または、デスクトップアプリ開発にJavaを使用することは、アプリ開発者がこれらのツールを構築および保守するための「ホット」マーケットではなくなりましたか?)
1)exeラッパー:jsmooth-2。5年以内に新しい開発はありません-64ビットをサポートしていません。launch4j-1年以上の間に新しい開発はなく、64ビットをサポートしますが、launch4jによって作成されたexeに署名できないため、jsmoothを好みますが、64ビットをサポートしていません。
2)onejar:動作しますが、2。5年以上新しい開発やWebサイトの更新はありません。したがって、Javaの新しいビルドで突然機能しなくなった場合は、サポートされているものに切り替えたり、バックアップ計画を立てたりするだけです。
ありがとうエドガー
windows-7 - launch4j exe 自体には何も言うことはありませんが、誰か提案がありますか?
Linux で実行し、launch4j を使用して exe をパッケージ化しました。
exe を Windows 7 VM にコピーして実行します。
そして、何も起こりません。
--l4j-debug を指定して実行しましたが、まだ何も起こりません (少なくとも、ログ ファイルがある場合は見つかりません)。
ここに欠けている診断技術はありますか?