プロジェクト

全般

プロフィール

Javaディレクトリ構成

Javaで作成したライブラリやアプリケーションプログラムを実行環境にどのようなディレクトリで格納するかを調査・検討したノートです。

Windows OS

Linux OS

Fedora,RPMパッケージ

Fedoraプロジェクトのドキュメント Packaging:Java

  • JNIを使用しないJARファイル(アーキテクチャに依存しないもの)は、%{_javadir}かそのサブディレクトリに置く。%{_javadir}は、/usr/share/java(CentOS 6.5 64bit版でrpmbuild -showrcを実行し、関係する定義を抜粋)
    _javadir   %{_datadir}/java
    _datadir   %{_datarootdir}
    _datarootdir       %{_prefix}/share
    _prefix    /usr
    
  • JNIを使用するJARファイルは、%{_jnidir}に置き、%{_libdir}/%{name}にシンボリックリンクを設けることができる。%{_jnidir}は、/usr/lib/java、{%_libdir}/%{name}は、/usr/lib64/<名前>
    _jnidir    %{_prefix}/lib/java
    _libdir    %{_prefix}/lib64
    
    • %{name}は、RPMパッケージ名
  • JNIの共有ライブラリファイルは、%{_libdir}/%{name}に格納する
  • 単一JARファイルを提供するパッケージは、%{name}.jarとすべき
  • 複数JARファイルを提供するパッケージは、%{name}サブディレクトリに格納すべき
  • Java APIドキュメントは、%{_javadocdir}/%{name}に格納しなければならない。ディレクトリ又はシンボリックリンクでバージョン付き(%{name}-%{version})を使用すべきでない。{%_javadocdir}は/usr/share/javadoc
    _javadocdir        %{_datadir}/javadoc
    
  • JARファイルのMANIFEST.MFにはclass-pathを含めてはならない
  • 実行スクリプトファイルは%{_bindir}に置くべき。{_bindir}は/usr/bin
    _bindir    %{_exec_prefix}/bin
    _exec_prefix       %{_prefix}
    

ArchLinux

Java Package Guidelines


ほぼ10年前に更新