問題タブ [onejar]
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.
scala - one-jar で作成された jar を開始するときのエラー
実行可能なjarファイルを作成するsbtプロジェクトがあります。jar は正しく作成されますが、これを開始すると例外がスローされます。
そのクラスは標準ライブラリにあるはずなので、これは奇妙なエラーだと思いました。また、アセンブリを使用して jar ファイルを作成しようとしましたが、同じ問題が発生します。
これは私のbuild.sbtです
maven - Netbeans IDE 内からではなく、コマンドラインから実行すると Maven Java アプリケーションがクラッシュする
編集:質問の書き直し:
私の問題を説明するために、新しい最小限の例を作成しました。まず、単純なクラス App.java のソース コードを次に示します。
次に、プロジェクトの pom.xml ファイルを次に示します。
3 番目に、src/main/resources フォルダーの下に log4j.xml があります。
OK、アプリケーションのビルドと Netbeans での実行は、コンソールとログ ディレクトリの下のファイルの両方にログアウトすると、期待どおりに完全に機能します。
ただし、以下に示すように、コマンド ライン (通常の jar と oneJar の両方) からの実行は機能しません。
java -jar testlog4j-1.0.jar
java -jar testlog4j.1.0.one-jar.jar
あなたの助けは非常に高く評価されています。
maven - Maven Jar には 2 つの実行コンテキストが必要です
Maven パッケージを 2 つのコンテキストで実行できるようにする必要があります。
ユーザーが java -jar myjar.jar を実行すると表示される AWT ダイアログからライセンス キーを生成するには、コマンド ラインから jar を実行する必要があります。
クライアント プロジェクトが myjar を依存関係として参照する場合、myjar はすべての推移的な依存関係も (「通常の」Maven の方法で) ダウンロードする必要があります。
シナリオ 1 では、AWT ダイアログがポップアップするように、AWT フォーム jar をパッケージ化する必要があります。
シナリオ 2 では、クライアント プロジェクトのビルド時に他のすべての依存関係をダウンロードする必要があります。
できるだけ小さく保つためにこれをパッケージ化するにはどうすればよいですか?
私はjar-plugin、shade-plugin、およびassembly-pluginを個別に試しましたが、うまくいきませんでした。
JAR-PLUGIN:
Forms-1.2.1.jar を lib/ ディレクトリに配置してクラスパスに追加しても、 java -jar myjar.jar がコマンドラインで読み込まれないため機能しません。
SHADE-PLUGIN:
インターネットをダウンロードします。一部の依存関係を除外するには?
ASSEMBLY-PLUGIN:
インターネットをダウンロードします。一部の依存関係を除外するには?
forms-1.2.1.jar の推移的な依存関係をパッケージ化する方法はありますか (シナリオ 1 の場合)、パッケージ化時に他のすべての依存関係を除外して、クライアント プロジェクトのビルド時にダウンロードされるようにします (シナリオ 2 の場合)。
jar-plugin または assembly-plugin はこれを行うことができますか?
sbt - sbt-onejar を使用してアセンブリでテストの実行をスキップするには?
このプロジェクト ファイルがあるにもかかわらずテストが常に実行される理由について、誰かがこのプロジェクト ファイルのトラブルシューティングを手伝ってくれますtest in assembly := {}か?
hibernate - JPAとワンジャー
JPA と Hibernate ORM 4.3.8 を使用するアプリケーションがあります。
このアプリケーションとその依存関係を one-jar を使用して単一の実行可能 jar にパッケージ化し、EntityManagerFactory Hibernate を作成しようとすると、次の例外がスローされます。
onejar-maven-plugin バージョン 1.4.5 を使用して myapplication-one-jar.jar を生成しています
これを回避する方法についての提案をいただければ幸いです。可能なオプションは次の 2 つです。
- one-jar 以外のツールを使用して、実行可能なファット jar を作成します。代替案にも同じ問題がある可能性があります。
- これに似たカスタム クラスローダーを作成しますが、JPA と Hibernate でこのクラスローダーを使用する方法が見つかりません。
ありがとうございました。
scala - jar 作成後の xml ファイルの読み取りに関する問題
を使用してアプリケーションを構築していますScalaFX。IntelliJIDEA でプロジェクトを実行すると、すべて正常に動作します。ただし、jar ファイルを作成して実行しようとすると、一部の xml ファイルの読み取りでエラーが発生します。SOに投稿されたさまざまなソリューションを試しましたが、役に立ちませんでした。
xml ファイル ( Home.fxml) はcom/app/adtパッケージに配置されます。を使用してjarファイルを作成していますsbt-one-jar。
パスのさまざまな組み合わせを試しましたが、常に同じエラーが発生します。
エラー スタック:
瓶の構造:
また、sbt-assembly代わりにを試してみましたsbt-one-jar。しかし、それでも同じエラーが発生します。:(
SOで以下の回答を試しました:
java - 実行可能なjarにmavenユーザーライブラリがパッケージ化されていません
私は現在 Java を 1 年間プログラミングしており、以前のプログラマーからいくつかのプロジェクトを引き継がなければなりませんでした。1998 年に .NET プログラミングを始めて以来、私はプログラミングの初心者ではありません。現在、Java プロジェクトでは、ベース ライブラリの 24 バージョン (および増加中) をサポートする必要があります (構造はすべて同じですが、特定のバージョンに固有のものです)。サードパーティのアプリケーション)。私は 2 日前に Maven を使い始め、Maven を学び、必要なものを機能させるために小さなデモ ワークスペースでこれを試しました。サポートされている各バージョンには、ユーザー ライブラリにカプセル化した複数の jar があります。ビルドを作成するには、このライブラリを正しいバージョンに変更し、プロジェクトを Runnable-Jar としてエクスポートする必要があります (ライセンス要件により、すべてが jar に含まれています)。それで、最初のPOMを作成しました。これが次のとおりです。
ご覧のとおり、私には 2 つのプロファイルがあります。1 つは v8.1 用、もう 1 つは v7.0 用です。
私の「ビルド」フロー: 最初に libraryProject で「mvn install」を実行します。次に、メイン プロジェクトで「mvn package」を実行します。これは、v8.1 (デフォルト プロファイル) を、ユーザー ライブラリを除くすべての依存関係を含む実行可能な jar としてビルドします。次の呼び出しは、ユーザー ライブラリなしで v7.0 をビルドする 'mvn package -PPPC_7.0' です。
だから私の質問: ユーザー ライブラリが各プロファイルの実行可能な jar に追加されるように、何を変更したり、間違ったことをしたりすることができますか?
前もってありがとう、
ジョー
PS: Eclipse Luna (Java EE IDE) を使用しています。
java - onejar Mavenプラグインを使用してマニフェストに追加のクラスパスエントリを設定するには?
onejar-maven-plugin を使用して JAR ファイルのマニフェストに任意のクラスパス エントリを追加する方法はありますか?
これを行うためにmaven-jar-pluginを構成する方法を見つけましたが、onejar-maven-pluginにはそのようなオプションがないようです。
これは、追加のクラスを見つけるためではなく (そうでなければ、onejar プラグインを使用する理由ですよね?)、JAR の外部にある必要がある構成ファイルを見つけるために行われます。
これに対する直接的な解決策または回避策はありますか?