[Armadillo:06778] Re: Debian lenny で Java (Open JDK) を使う
Takenoshita Koyo
email@hidden
2011年 2月 8日 (火) 15:22:57 JST
竹之下です。
インラインにてご回答いたします。
email@hidden さんは書きました:
> お世話になっております。
> 東芝の上村です。
>
> お忙しいところ、真に申し訳ありませんが、ご教示頂けないでしょうか。
>
> 以下のURLの手順に沿って、Debian lenny で Java (Open JDK) を使う環境を構
> 築しております。
> URLの3項と4項に関して、少々、補足説明をして頂いてもよいでしょうか。
>
> http://armadillo.atmark-techno.com/howto/openjdk-debian-lenny
>
> 3. Java 開発環境のインストール
> 作業用 PC に Java 開発環境をインストールします。作業用 PC で以下のコマン
> ドを実行してください。
> [PC ~]$ sudo apt-get install openjdk-6-jdk
>
> 【1】
> 「VMwraeへ開発環境(作業用PC): ATDE v3 v20100309をセットした段階で、Sun
> Java 5.0 consoleというものが既にインストールされていますが、このツール
> を使用して、HelloWorld.java を作成するのでしょうか?。3項(Java 開発環
> 境のインストール)でインストールするJava 開発環境との関連が良く解かりま
> せん」
Javaの実装はいくつかあります。Sun Java 5.0 consoleは、Sunが提供しているJava
の実装用のツールです。「3. Java 開発環境のインストール」でインストールする
Java開発環境(Open JDK)は、それとは別の実装です。
Sunの実装は、ARM用に簡単にインストールすることができないので、今回は後者を
使います(2. Java Runtime のインストール)。実行環境(Runtime)と開発環境は
一緒の方が、バージョン違いなどの問題が起きにくいので、開発環境も同じもの
をインストールしています。
少し話がそれますが、Debian lennyでは、alternativesという仕組みで、複数の
バージョンが共存できるようになっています。例えば、javaコマンドや
javacコマンドは、実際には/etc/alternatives/ディレクトリ以下へのリンクと
なっています。
[PC ~]$ ls -l $(which java)
lrwxrwxrwx 1 root root 22 2009-11-05 21:51 /usr/bin/java -> /etc/alternatives/java
[PC ~]$ ls -l $(which javac)
lrwxrwxrwx 1 root root 23 2009-11-05 21:51 /usr/bin/javac -> /etc/alternatives/javac
ATDE3の標準状態では、これらはそれぞれSun Java 1.5.0へのリンクになっています。
[PC ~]$ ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 40 2009-11-05 21:52 /etc/alternatives/java -> /usr/lib/jvm/java-1.5.0-sun/jre/bin/java
[PC ~]$ ls -l /etc/alternatives/javac
lrwxrwxrwx 1 root root 37 2009-11-05 21:52 /etc/alternatives/javac -> /usr/lib/jvm/java-1.5.0-sun/bin/javac
「sudo apt-get install openjdk-6-jdk」を実行すると、OpenJDK6へのリンクに置き換わります。
[PC ~]$ ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 40 2011-02-08 14:50 /etc/alternatives/java -> /usr/lib/jvm/java-6-openjdk/jre/bin/java
[PC ~]$ ls -l /etc/alternatives/javac
lrwxrwxrwx 1 root root 37 2011-02-08 14:50 /etc/alternatives/javac -> /usr/lib/jvm/java-6-openjdk/bin/javac
この場合でも、Sun Javaはインストールされたままなので、/usr/lib/jvm/java-1.5.0-sun/jre/bin/javaを
絶対パスで指定して実行すれば、Sun Javaを使うこともできます。
ちなみに、update-alternativesコマンドを使うと、単に「java」と実行したときに
どちらの実装を使うかを変更できます。
$ sudo update-alternatives --config java
`java' を提供する 2 個の alternatives があります。
選択肢 alternative
-----------------------------------------------
1 /usr/lib/jvm/java-1.5.0-sun/jre/bin/java
*+ 2 /usr/lib/jvm/java-6-openjdk/jre/bin/java
デフォルト[*] のままにするには Enter、さもなければ選択肢の番号のキーを押してください:
>
> 【2】
> 「既に持っておりましたWindows環境で動作するEclipse3.6(システムライブラ
> リーをjavaSE-1.6の設定)を使用して作成した.javaファイルを、開発PC環境で
> [PC ~]$ javac HelloWorld.javaコマンドを実行して作成した.classファイルを
> Armadilloに実行したのですが、以下のようにメッセージが表示されて、実行で
> きませんでした。Eclipse3.6環境で作成した.javaファイルは、Armadillo環境で
> は、使用できないのでしょうか?」
>
> debian:/usr# startx $(which java) HelloWorldGui
> X: warning; process set to priority -1 instead of requested priority 0
>
> X.Org X Server 1.4.2
> Release Date: 11 June 2008
> X Protocol Version 11, Revision 0
> Build Operating System: Linux Debian (xorg-server 2:1.4.2-10.lenny3)
> Current Operating System: Linux debian 2.6.26-at13 #1 PREEMPT Thu Jan 20
> 17:40:32 JST 2011 armv6l
> Build Date: 25 September 2010 02:52:58PM
>
> Before reporting problems, check http://wiki.x.org
> to make sure that you have the latest version.
> Module Loader present
> Markers: (--) probed, (**) from config file, (==) default setting,
> (++) from command line, (!!) notice, (II) informational,
> (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
> (==) Log file: "/var/log/Xorg.0.log", Time: Tue May 9 22:55:46 2000
> (==) Using config file: "/etc/X11/xorg.conf"
> xf86optionListCreate: count must be an even number.
> State: S_UNTOUCHED Action: No Action Button: 0
> State: S_TOUCHED Action: No Action Button: 0
> State: S_LONGTOUCHED Action: down Button: 1
> State: S_MOVING Action: No Action Button: 0
> State: S_MAYBETAPPED Action: click Button: 1
> State: S_ONEANDAHALFTAP Action: down Button: 3
> [config/hal] couldn't initialise context: (null) ((null))
> Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorldGui
> (wrong name: jp/tc31501/eclipse/HelloWorldGui)
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:637)
> at
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)
> Could not find the main class: HelloWorldGui. Program will exit.
>
> waiting for X server to shut down FreeFontPath: FPE
> "/usr/share/fonts/X11/misc" refcount is 2, should be 1; fixing.
> Eclipse3.6環境で作成した.javaファイルは、Armadillo環境では、使用できないのでしょうか?
に関してですが、.javaファイルは単なるソースコードですので、どこで記述しても
構いません。
> [PC ~]$ javac HelloWorld.javaコマンドを実行して作成した.classファイルを
> Armadilloに実行したのですが、以下のようにメッセージが表示されて、実行で
> きませんでした。
とのことですが、実際の実行結果では以下のように「HelloWorldGui」を
実行しています。
> debian:/usr# startx $(which java) HelloWorldGui
そして、「HelloWorldGui」というクラスが見つからないというエラーに
なっています。
> Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorldGui
もう一度手順をご確認ください。PC上では動作していますでしょうか?
>
> 「4. サンプルプログラム(非GUI)
> ターミナルに「Hello World」と表示するだけのJavaアプリを作成し、実行して
> みます。
> 作業用 PC で以下の HelloWorld.java を作成してください。
> HelloWorld.java」
>
> 【3】
> 「Sun Java 5.0 consoleを使用して、4項のHelloWorld.javaを作成するので
> しょうか? 」
.javaファイルは、単なるソースコードですので、どんなツールを使って記述しても
構いません。Howtoに載っているぐらいの短いものでしたら、テキストエディタを
使って書いても良いと思います。
※元の文中の、丸1などの記述を算用数字に置き換えさせていただきました。
丸1などの機種依存文字を使うと、メールが保存書庫にアーカイブされたときに
文字化けしてしまうようです。システム上の問題ですが、できれば機種依存文字
を使わないようにしていただきますよう、お願い致します。
> 真に申し訳ありませんが、よろしくお願い致します。
>
>
>
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
--
Koyo Takenoshita
armadillo メーリングリストの案内