問題タブ [meta-inf]
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 - オプションの JAR META-INF 用の Ant Contrib If
build.xml
複数のプロジェクトで同じファイルを再利用しようとしているシナリオがあります。いずれの場合も、最終的なターゲットは、dist
すべてを JAR 化する です。唯一の違いは、一部のプロジェクトにはsrc/main/java/META-INF/*
ディレクトリがあり、他のプロジェクトにはディレクトリがない (src/main/java/*
ディレクトリがあるだけ) ことです。
Ant-Contrib<if/>
タスクを使用しMETA-INF/
て、ビルドでsrc/main/java/META-INF/*
利用可能なディレクトリが見つかった場合に、オプションでディレクトリを定義したいと考えています。だから、このようなもの:
しかし、私はここで2つのことを窒息させています:
- このターゲットを実行すると、タスク
<if/>
内に をネストできないというビルド例外が発生します。<jar/>
と - クラスパスのルートにディレクトリを作成し、すべての内容をそこにコピーするように
<jar/>
タスクを構成する方法がわかりません。META-INF
src/main/java/META-INF
何かご意見は?前もって感謝します。
netbeans - Netbeans プロジェクトにデフォルトの META-INF フォルダがありません -- ファイルを追加する場所は?
javamail.providers
Ant ビルド ファイルの雑草に入ることなく、Netbeans を META-INF フォルダー (手動で追加したフォルダー)に追加するにはどうすればよいですか?
manifest.mf は最終的に結果の jar の META-INF フォルダーに (正しく) 配置されますが、META-INF フォルダー (私が手動で追加したもの) の外側に存在するため、ちょっと奇妙です。
プロジェクトは次のとおりです。
Netbeans がビルドした結果の JAR は次のとおりです。
これは、GNU パッケージングの提案に応えたものです。
以下も参照してください。
http://article.gmane.org/gmane.comp.java.netbeans.user/176994
android - apk に「META-INF/services」ファイルを保持する
JavaSE で既に動作しているカスタム文字セットがあります。
私の CharsetProvider のクラスは、にあるファイルjava.nio.charset.spi.CharsetProvider
で指定されMETA-INF/services
、すべてが正常にロードされ、期待どおりに動作します。
ただし、今は Android でも lib を使用していますが、文字セットが Android-App に読み込まれていません。
Androidアプリで期待どおりに使用できるように、文字セットを統合するにはどうすればよいですか?
現時点では、次のような回避策を行っています。
これは機能しますが、自分の文字セットでこのようにデコードしようとするたびに例外がスローされ、CharsetProvider-Object が作成されるため、効果がないように思えます。
もちろん、作成はシングルトンパターンによって削減できます。しかし、問題は MyCharsetProvider の直接使用を完全に避けることです。
編集 :
META-INF/services/java.nio.charset.spi.CharsetProvider
がapkにないので、プロガードが削除するかもしれませんが。次に、proguard.cfg で次のオプションを試しました。
しかし、問題はまだ解決していません。META-INF/services
ant(netbeans)を使用してこれらのファイルをapkから自動的に取得するにはどうすればよいですか?
image - CMYKJPEGImageReaderSpi が読み込まれない
CMYK JPEG 画像の読み取りに問題があり、問題を解決するための参照として以下の URL を使用しました。
http://www.randelshofer.ch/blog/2011/08/reading-cmyk-jpeg-images-with-java-imageio/
パス /META-INF/services/javax.imageio.spi.ImageReaderSpi の下のファイル javax.imageio.spi.ImageReaderSpi に構成 org.monte.media.jpeg.CMYKJPEGImageReaderSpi を指定しました。
これはEclipse内で完全に機能し、イメージリーダーは正常にロードされます。
このファイルは展開時に読み込まれません。生成された war ファイルのフォルダーとファイルは、lib フォルダー内の目的の jar ファイルにあります。Java クラスパスに追加する必要があると思います。
クラスパスに追加するのを手伝ってください。または、他に問題がある場合は教えてください。
java - ドライバーの内部配管に「META-INF/services」を使用する
私は Jaybird JDBC ドライバーを開発していますが、今日、Jaybird がコンポーネントの一部をロードする方法と、この場合は NetBeans がクラスロードを制限する方法に関連する問題 ( JDBC-325、休止状態で Jaybird を構成する方法) に遭遇しました。
この問題は、Jaybird がエントリを使用してそれ自体の一部をロードする方法META-INF/services
と、Hibernate ウィザード用に NetBeans によって使用されるクラスローダーがそれらのファイルを明示的に無視することに関連しています (以下の詳細を参照)。
Jaybird 実装の一部であるハードコードされたプラグインのリストを (また) ロードしようとするか、定義を別の場所に移動することで、この問題を回避できます。
META-INF/services
しかし、Jaybird のように内部目的で使用するのは奇妙 (または間違っている) かどうか疑問に思っていましたか?
NetBeans が のロードを除外する理由もわかりませんMETA-INF/services
。Drewのコメントは、 NetBeans がドライバーのロード時のエラーを解決するためにそれを使用したことを示しているようです (この問題を参照)。
問題の詳細
Jaybird は、Type 4 プロトコル、カスタムの Type 4 Open Office プロトコル、Type 2 埋め込み (ネイティブ) プロトコル、Type 2 ネイティブ クライアント プロトコルなど、サポートされているプロトコルのプラグインを使用します。また、サードパーティがこれを使用して、Oracle 固有の構文を Firebird 構文に変換するドライバーを提供したこともあると思います。
これらのプラグインはすべて にリストされMETA-INF/services/org.firebirdsql.gds.impl.GDSFactoryPlugin
、同様の方法でロードされますjava.util.ServiceLoader
(現在の 2.2.x ドライバーは Java 5 をサポートしているため、実際には を使用しませんServiceLoader
)。今後のバージョンでは、サポートされている接続エンコーディングと (ワイヤ) プロトコル定義にもこれを使用する予定でした。これにより、「カスタム」エンコーディング定義 (サポートされているエンコーディングを拡張する、または別のエンコーディングを使用するなど) または異なるプロトコルの実装 (トラブルシューティング、カスタム ロギングなど) が可能になります。
ここで実際の問題は、Netbeans ウィザードのHibernate Mapping Files and POJOs from Databaseがカスタム クラスローダー ( org.netbeans.modules.hibernate.util.CustomClassLoader
) を使用し、このクラスローダーが のファイルを無視することですMETA-INF/services
。問題があるのはこのウィザードだけであることに注意してください。Netbeans 自体は問題なくドライバを使用できます。
コード無視META-INF/services
:
これにより、プラグインが検出されず、ドライバにプロトコルがないNullPointerException
ため、接続が作成されないため、内部 Netbeans が発生します。
tomcat - context.xml ファイルで jasperserver データベースの公開スキーマを参照する方法は?
Tomcat で Jasperserver コミュニティ エディションを実行しようとしています。buildomatic のインストール スクリプトを使用してビルドが成功した後、ドキュメントの手順に従っています。Tomcat サーバーを実行しようとしましたが、「関係 jiresourcefolder が存在しません」というメッセージが表示されます。データベースをチェックすると、必要なすべてのテーブルが jasperserver データベースのパブリック スキーマにロードされます。
(jasperserver/META-INF) の下にある context.xml で、正しいデータベースが参照されます。public sh=chema を参照して、必要なすべてのテーブルにアクセスできるようにする方法を知っている人はいますか?それとも、見逃した他の構成が必要ですか?