#topicpath

#contents

*Java の FAQ [#l0f13b4e]

-https://lists.debian.org/debian-java/

-https://alioth.debian.org/projects/pkg-java/
--https://pkg-java.alioth.debian.org/
--https://lists.alioth.debian.org/pipermail/pkg-java-maintainers/
--https://lists.alioth.debian.org/pipermail/pkg-java-commits/
--https://lists.alioth.debian.org/pipermail/pkg-java-kaffe/

-https://wiki.debian.org/Java

**Java 実行環境・開発環境のインストール &aname(environment); [#fd81876f]
*Java 実行環境・開発環境のインストール &aname(environment); [#fd81876f]

参照:

-[[Debian Java FAQ.>https://www.debian.org/doc/manuals/debian-java-faq/]]
-[[Debian policy for Java>https://www.debian.org/doc/packaging-manuals/java-policy/]]
-[[Java - Debian Wiki>https://wiki.debian.org/Java]]
--[[CategoryJava - Debian Wiki>https://wiki.debian.org/CategoryJava]]
--[[JVM - Debian Wiki>https://wiki.debian.org/JVM]] (JVM の各実装)
--[[Java/Sun - Debian Wiki>https://wiki.debian.org/Java/Sun]]
--[[DebianJavaPackaging - Debian Wiki>https://wiki.debian.org/DebianJavaPackaging]]
-[[Debian Java Packaging Project>https://pkg-java.alioth.debian.org/]]

//Obsolete:
//-[[でびあんでじゃば>http://tidus.ultimania.org/wiki/index.php?%A4%C7%A4%D3%A4%A2%A4%F3%A4%C7%A4%B8%A4%E3%A4%D0]]
//-[[Java Package List for Debian>http://people.debian.org/~tora/java/packagelist.html]]
//-[[free-java-sdk>pkg:free-java-sdk]]

etch 以降では Java 実行環境・開発環境は十分用意されている為、
特定の実装に依存した環境を必要とする場合などを除いてのみ、環境構築を意識する必要はありません。

通常 Java で動作するソフトウェアパッケージ (例: [[tomcat6>pkg:tomcat6]]) を導入すると
同時に実行環境 (squeeze ではデフォルトで openjdk-6-jre) も導入されます。
同様に Java 開発ツール・ライブラリパッケージを導入すると、
開発環境 (squeeze ではデフォルトで openjdk-6-jdk) も同時に導入されます。

JDK の FLOSS 化により、etch 以前は contrib セクションにあった Java ライブラリ・開発ツールは
squeeze 以降はほぼ全て [[main/java>https://packages.debian.org/unstable/java/]] セクションに移動しています。

各固有の実装を導入する場合は以下のとおりです。

***1. 概要 [#o6140433]
**1. 概要 [#o6140433]

以下の仮想パッケージからいずれかの実装を選ぶと環境を構築できます。

-開発環境 (Java SDK)
--[[java-sdk>https://packages.debian.org/unstable/java-sdk]]
---[[java-compiler>https://packages.debian.org/unstable/java-compiler]]

-実行環境 (Java Runtime)
--[[java-runtime>https://packages.debian.org/unstable/java-runtime]]
---[[java-virtual-machine>https://packages.debian.org/unstable/java-virtual-machine]]

squeeze におけるデフォルトの環境は
[[OpenJDK 6>http://openjdk.java.net/]] ([[IcedTea>http://icedtea.classpath.org/]] ベース) +
[[GNU Compiler for Java (GCJ)>http://gcc.gnu.org/java/]] (2実装間の相互運用性のためのいくつかのスクリプトを含む)
であり、以下のメタパッケージをインストールすることで環境を構築できます。

-開発環境
--[[default-jdk>https://packages.debian.org/unstable/default-jdk]]

-実行環境
--[[default-jre>https://packages.debian.org/unstable/default-jre]]
---[[default-jre-headless>https://packages.debian.org/unstable/default-jre-headless]]

また、Oracle (Sun) JRE/JDK との互換性維持のため、以下の仮想パッケージがあります。

-開発環境
--[[java-gcj-compat-dev>https://packages.debian.org/unstable/java-gcj-compat-dev]]

-実行環境
--[[java-gcj-compat>https://packages.debian.org/unstable/java-gcj-compat]]
---[[java-gcj-compat-headless>https://packages.debian.org/unstable/java-gcj-compat-headless]]

以下のパッケージはユーザが手動で導入する必要性は皆無です。
しかし、Java 環境を導入する際には自動的にインストールされているでしょう。

-[[java-common>pkg:java-common]]

"[[headless>https://packages.debian.org/headless]]" という名前の付いたパッケージはグラフィカルインタフェースが取り除かれた、
コンソールベースのツールキットのみで構成されています。

***2. 標準環境の構築 [#e3b608c4]
**2. 標準環境の構築 [#e3b608c4]

FLOSS な Java 実装として以下のパッケージが main セクションに用意されています。

-[[OpenJDK 6 (IcedTea ベース)>pkg:openjdk-6]]
以下のパッケージをインストールするとよいでしょう。

 # aptitude install openjdk-6-jdk

--また次の追加パッケージがあります。

---[[openjdk-6-demo>https://packages.debian.org/unstable/openjdk-6-demo]] はサンプル・デモパッケージです。

---[[openjdk-6-source>https://packages.debian.org/unstable/openjdk-6-source]] は OpenJDK のソースコード (src.zip) です。
これがインストールされていると、javadoc/Eclipse などでコードのハイライトを行うことができます。

---[[openjdk-6-jre-zero>https://packages.debian.org/unstable/openjdk-6-jre-zero]]
はアセンブリ Zero を目指す IcedTea プロジェクトの HotSpot VM です。(Sun の HotSpot はアセンブリが多く含まれています。)
アーキテクチャ独立な高速 JIT コンパイラ Shark を含んでいます。
Shark は [[LLVM>pkg:llvm]] を内部で使用しています。

---[[icedtea-6-jre-cacao>https://packages.debian.org/unstable/icedtea-6-jre-cacao]] は
[[CACAO>http://www.cacaovm.org/]] プロジェクトの成果物を含んだ、新しい VM です。non-x86 環境では高速に動作します。

---[[openjdk-6-doc>https://packages.debian.org/unstable/openjdk-6-doc]] はドキュメントです。

-[[GNU Compiler for Java (コンパイラ)>https://packages.debian.org/unstable/gcj]],
[[GNU Interpreter for Java (Java バイトコードインタプリタ)>https://packages.debian.org/unstable/gcj-jre-headless]]。
ソースコードからクラスファイルではなく、マシンコードを直接生成するネイティブコンパイラ。
GCC の成果物の一部です。
JDK と同じくクラスファイルを生成し、バイトコードインタプリタで処理するということも可能です。
(JIT コンパイラとは違いマシンコードへのコンパイルをせず、インタプリタ処理するというユニークな方法です。)

--[[gcj-jdk>https://packages.debian.org/unstable/gcj-jdk]] を導入すると JDK と同様のコマンド等で処理できるようになります。
[[gcj-jre>https://packages.debian.org/unstable/gcj-jre]]
(または [[gcj-jre-headless>https://packages.debian.org/unstable/gcj-jre-headless]])
を導入すると、JRE と同様のコマンド等で処理できるようになります。

Oracle (Sun) JRE/JDK を含む Java 実行環境・開発環境は non-free セクションに含まれていましたが、
Oracle により Java 6 Update 29 以降のライセンスが変更されたため、
[[Debian アーカイブに含めることができなくなりました>https://www.debian.org/News/weekly/2011/15/#javarm]]。
lenny と squeeze にはまだ Java 6 Update 26 が残っていますが、セキュリティパッチ等も提供されなくなるため、
そのまま使い続けるのは望ましくありません。

-[[JDK 5>pkg:sun-java5]]
(etch から lenny まで。squeeze では削除されています。[[BTS:545390]])
-[[JDK 6>pgk:sun-java6]]
(lenny から squeeze まで。 wheezy では削除されています。 [[BTS:646524]])

non-free の apt-line を追加した後で、~
etch の場合は
 # aptitude install sun-java5-jdk sun-java5-demo sun-java5-source sun-java5-doc sun-java5-plugin sun-java5-fonts
lenny 以降の場合は
 # aptitude install sun-java6-jdk sun-java6-demo sun-java6-source sun-java6-doc sun-java6-plugin sun-java6-fonts

***3. その他の実装について [#ka81592a]
**3. その他の実装について [#ka81592a]

下記クリーンルーム方式のオープンソース実行環境は JDK の non-free セクションへの投入並びに
FLOSS 化により、時代遅れとなったため削除されました。

-Jikes (etch まで。lenny にて削除。[[BTS:508366]])
-SableVM (etch まで。lenny にて削除。[[BTS:508369]])
-Kaffe (lenny まで。squeeze にて削除。[[BTS:550864]])
-JamVM (lenny まで。squeeze にて削除。[[BTS:570009]])

CACAO はソースパッケージ
[[cacao-source>pkg:cacao-source]] があります。
これは OpenJDK 6 (IcedTea ベース) のビルド時に使用される為だけに用意されています。
以前はバイナリパッケージがありましたがこれも実用環境としては時代遅れとなったため削除されています。([[BTS:570760]])
また一部成果物は OpenJDK (IcedTea ベース) に取り込まれています。

[[Mono>pkg:mono]] で実装された .NET ベース JVM として
[[ikvm>pkg:ikvm]] というものがあります。

***4. 他ベンダ提供のバイナリについて [#r3ab3650]
**4. 他ベンダ提供のバイナリについて [#r3ab3650]
lenny までは存在した他ベンダ (Oracle, IBM など) 提供のバイナリを deb パッケージに変換するユーティリティ
'''java-package''' (コマンド名 '''make-jpkg''') は squeeze では削除されています。([[BTS:577423]])
これにより squeeze %%以降%%で他ベンダ提供のバイナリを dpkg/apt で管理することは最早できなくなりました。

(注: Squeezeではjava-packageは削除され利用できませんが、Wheezy以降ではOracleのライセンス変更を受け[[java-package>https://packages.debian.org/wheezy/java-package]]が復活しました。)

// (勿論、導入することは可能です、がライブラリのバージョン等の相違で使用できないかもしれません。
// また policy の違いにより Java ライブラリ、開発ツールパッケージとの併用はおそらくできないでしょう。)

//***5. sarge の場合 (Obsolete) [#p9cea25f]
//**5. sarge の場合 (Obsolete) [#p9cea25f]
//
//[[Sun の JDK のライセンスの変更>https://lists.debian.org/debian-devel-announce/2006/05/msg00010.html]]
//以前のため、Debian から公式にパッケージは配布されていません。~
//以下は自前で .deb パッケージを作成する手順です。
//
//Sun J2SE/SDK のパッケージを生成するツール 
//([[java-package>pkg:java-package]]) と、
//Debian 固有の共通パッケージ 
//([[java-common>pkg:java-common]]) をインストール。
//
// # aptitude install java-package java-common
//
//[[Sun のサイト>http://java.sun.com/j2se/1.4.2/download.html]]
//(5.0 は[[こっち>http://java.sun.com/j2se/1.5.0/download.jsp]]) から
//使用するアーキテクチャ (i586, ia64, amd64) に 合った *.bin (self-extracting file. *.rpm ではない) を
//ダウンロード (例えば j2sdk-1_4_2_08-linux-i586.bin )。
//"with NetBeans" や、Java EE には対応していないので注意。
//
// $ fakeroot make-jpkg j2sdk-1_4_2_08-linux-i586.bin
//
//幾つか質問されます。
//(名前やメールアドレスや使用許諾への同意等々。)
//
//生成したパッケージをインストール。
//
// # dpkg -i sun-j2sdk1.4_1.4.2+08_i386.deb
//
//バージョン 0.19 から postinst/prerm スクリプトが
//[[update-alternatives>https://www.debian.org/doc/manuals/reference/ch-package#s-alternatives]]
//を呼び出すことにより、
//-java, javac などのプログラムの /usr/bin 下へのシンボリックリンクの生成、削除 
//-mozilla/netscape への Java プラグインサポート
//が自動的に行われます。
//([[Debian policy for Java>https://www.debian.org/doc/packaging-manuals/java-policy/]] の Section 2. "Policy" を参照。)
//
//後は環境変数を指定して終了。例えばバージョンが 1.4.x の場合は、
// $ export JAVA_HOME=/usr/lib/j2sdk1.4-sun
//$ export PATH=$PATH:$JAVA_HOME/bin
//
//バージョン 0.21 からは [[IBM JDK>http://www.ibm.com/developerworks/java/jdk/linux/]] もサポートされました。
//
//参照:~
//-[[でびあんでじゃば>http://tidus.ultimania.org/wiki/index.php?%A4%C7%A4%D3%A4%A2%A4%F3%A4%C7%A4%B8%A4%E3%A4%D0]]
//-[[Debian Java インストール>http://www.prime-stage.net/linux/debian-java.html]]
**日本語の文字化けについて [#k9332a29]
*日本語の文字化けについて [#k9332a29]
[[Japanese#java]] を参照。
squeeze [[公式の Java 環境>#environment]]を構築した場合、 ttf-sazanami-gothic, ttf-sazanami-mincho, ttf-vlgothic
のいずれかが入っていれば化けることはない。~
(他ベンダ提供のバイナリを導入した場合は不明。)

**インストール済みの JVM を切り替えたい &aname(alternatives); [#k0eaaa08]
*インストール済みの JVM を切り替えたい &aname(alternatives); [#k0eaaa08]
[[Debian policy for Java>https://www.debian.org/doc/packaging-manuals/java-policy/]] により、各実装は 
[[update-alternatives>https://www.debian.org/doc/manuals/reference/ch-package#s-alternatives]]
で切り替えることができます。

java-common バージョン 0.24 から一括設定できるツールとして、update-java-alternatives という
update-alternatives のラッパースクリプトが用意されています。

 $ /usr/sbin/update-java-alternatives
 usage: update-java-alternatives [--jre-headless] [--jre] [--plugin] [ -t|--test|-v|--verbose]
            -l|--list [<jname>]
            -s|--set <jname>
            -a|--auto
            -h|-?|--help

~-l (--list) オプションでインストール済みの実装一覧とその優先度 ('''NN''')を表示
 $ /usr/sbin/update-java-alternatives -l
 java-6-openjdk NN /usr/lib/jvm/java-6-openjdk
 java-6-sun NN /usr/lib/jvm/java-6-sun
 java-gcj-4.4 NN /usr/lib/jvm/java-1.5.0-gcj-4.4

~-s (--set) オプションでデフォルトの実装を変更
 # update-java-alternatives -s java-6-sun

~-a (--auto) オプションで優先度の最も高い実装に設定
 # update-java-alternatives -a

勿論、旧来のように update-alternatives でコマンド毎に切り替えも可能です。
'''ライブラリとツールが混合されるので推奨されません'''が、もしやりたい場合は、
 # update-alternatives --config java 
を実行してください。java の代わりとして他にも、javac, javadoc, javah, javap などが指定可能です。

**ライブラリはどこにありますか? [#ye65d810]
*ライブラリはどこにありますか? [#ye65d810]

Debian policy for Java の [[2.3. Java libraries>https://www.debian.org/doc/packaging-manuals/java-policy/x104.html]]
を参照してください。

こちらに書かれている通り、

-クラスファイル (*.class。しかし通常はソフトウェア毎に *.jar ファイル形式でまとめられる) は
libXXX[version]''-java'' という名前のパッケージで全アーキテクチャ共通に提供され、 /usr/share/java に *.jar ファイルがあります。
[[Debian 公式の Java 開発環境>#environment]]などは 変数 $CLASSPATH にこちらが追加されており、
(JIT)コンパイラが起動すると自動的にロードされます。
-JNI については libXXX[version]''-jni'' と言う名前のパッケージがアーキテクチャ毎に提供され、
/usr/lib/jni に *.so ファイルが格納されています。

**ブラウザプラグイン関連 [#xd9d266f]
*ブラウザプラグイン関連 [#xd9d266f]

Java アプレットプラグインを使用する場合は、

-OpenJDK 6 では [[icedtea6-plugin>https://packages.debian.org/unstable/icedtea6-plugin]]
-Oracle (Sun) JDK 6 では [[sun-java6-plugin>https://packages.debian.org/unstable/sun-java6-plugin]]
-Sun JDK 5 では [[sun-java5-plugin>https://packages.debian.org/lenny/sun-java5-plugin]]

をインストールしてください。

-[[Java プラグイン利用ガイド (Mozilla)>http://support.mozilla.com/ja/kb/Using%20the%20Java%20plugin%20with%20Firefox]]
-[[Java ソフトウェアのインストール状況の確認>http://www.java.com/ja/download/installed.jsp]]
-[[Java Web Start>http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136112.html]]

-プラグイン用のテストページ
--[[Java Tester>http://javatester.org/]]
--[[JAVA PLUG-IN 1.4.2 Demonstration Applets>http://java.sun.com/products/plugin/1.4.2/demos/plugin/applets.html]]
--[[J2SE 5.0 Demonstration Applets>http://java.sun.com/products/plugin/1.5.0/demos/plugin/applets.html]]

**アプリケーションサーバ [#m65038dc]
*アプリケーションサーバ [#m65038dc]

***Tomcat (JSP) [#mb6209c5]
**Tomcat (JSP) [#mb6209c5]

-[[tomcat6>pkg:tomcat6]]
-[[tomcat7>pkg:tomcat7]]
-[[libapache-mod-jk>pkg:libapache-mod-jk]]

デフォルトの動作では、Java の実装に OpenJDK 6 が選択されます。
複数の実装を用意している場合は、[[alternatives>#alternatives]] で切り替えることを推奨します。~
しかし、次のような方法でも変更可能です。
>/etc/default/tomcat6
<
ファイルに
 JAVA_HOME=/usr/lib/jvm/java-6-openjdk
などと環境変数 JAVA_HOME を指定しても使用する実装を変更できます。

指定可能な値の例:
-/usr/lib/jvm/java-6-openjdk (OpenJDK 6)
-/usr/lib/jvm/java-6-sun (Oracle (Sun) JDK 6)
-/usr/lib/jvm/java-1.5.0-sun (Sun JDK 5)
-/usr/lib/j2sdk1.5-sun (Sun J2SDK 1.5)
-/usr/lib/j2sdk1.5-ibm (IBM JDK 1.5)

デフォルトの最大ヒープサイズは 128 MB に指定されています。これを変更したい場合は、
>/etc/init.d/tomcat6
<
ファイル内の以下の変数 JAVA_OPTS の -Xmx オプションの引数を変更します。

 # It also looks like the default heap size of 64M is not enough for most cases
 # so the maximum heap size is set to 128M
 if [ -z "$JAVA_OPTS" ]; then
         JAVA_OPTS="-Djava.awt.headless=true -Xmx128M"
 fi

を

 # It also looks like the default heap size of 64M is not enough for most cases
 # so the maximum heap size is set to 128M
 if [ -z "$JAVA_OPTS" ]; then
         JAVA_OPTS="-Djava.awt.headless=true -Xmx256M"
 fi

などと変更します。

//Obsolete:
//-[[Debian GNU/Linux 3.0 WoodyによるApache+Tomcat環境の構築>http://www.sssg.org/wiki/index.jsp?pid=Apache_Tomcat]]

//-woody に mpkg-j2sdk を使って SUN JDK 1.4.2 をインストールした場合:
//--/etc/default/tomcat4 に JAVA_HOME="/usr/lib/j2sdk1.4/" を追記すること

//-[[ [debian-users:34885]>http://lists.debian.or.jp/debian-users/200210/msg00150.html]] 
///etc/default/tomcat4 で TOMCAT4_USER を設定しないと、自動起動しないとの事
//-- => tomcat4 を apt-get した場合は /etc/init.d/tomcat4 にて指定される

***JBoss [#g1db5498]
**JBoss [#g1db5498]
-[[JBoss>http://www.jboss.org/]] 
--[[jbossas4>pkg:jbossas4]]

//Obsolete:~
//https://lists.debian.org/debian-java/2002/06/msg00040.html   (相当古いので注意)
// deb http://debian.innovationsw.com/debian unstable/$(ARCH)/
// deb http://debian.innovationsw.com/debian unstable/all/
// deb-src http://debian.innovationsw.com/debian unstable/source/
//--[[JBossPackaging - Debian Wiki>https://wiki.debian.org/JBossPackaging]] の 
//[["Building the Debian Package from Alioth SVN">https://wiki.debian.org/JBossPackaging#head-4a758c45ef6dc81674bed13bbf58018b6938d154]] ~
//を参照して自力でパッケージを作成することもできます。

***Hadoop [#qe5f8722]
**Hadoop [#qe5f8722]

-[[hadoop>pkg:hadoop]]

**開発ツール [#q566f8aa]
*開発ツール [#q566f8aa]

***Eclipse [#k82c67f9]
**Eclipse [#k82c67f9]
-[[eclipse>pkg:eclipse]]
--http://www.eclipse.org/
--http://www.eclipsewiki.net/eclipse/
//--[[eclipse-nls-sdk>pkg:eclipse-nls-sdk]]

***その他 [#nf4428cb]
**その他 [#nf4428cb]
-[[ant>pkg:ant]]
-[[junit>pkg:junit4]]

**ライブラリ [#m77b36f9]
*ライブラリ [#m77b36f9]

-GNU Classpath は LibGCJ に統合されたため、squeeze にて削除されています。([[BTS:585907]])

**ユーティリティ [#t7b2950c]
*ユーティリティ [#t7b2950c]

//-[[doc++>pkg:doc++]] (javadoc 相当)
-[[fastjar>pkg:fastjar]] - C ベースの jar。Sun のものより高速。


**その他 [#n7b7172f]
*その他 [#n7b7172f]

-[[Java SE 6 Documentation>http://download.oracle.com/javase/6/docs/]]

//-[[IBM JDK>http://www.ibm.com/developerworks/java/jdk/]]
//-[[JBuilder>http://www.embarcadero.com/jp/products/jbuilder]]
//-[[Oracle WebLogic>http://www.oracle.com/jp/products/middleware/application-server/]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS