3

レガシー プロジェクトをコンパイルするために JDK 1.2 をインストールしたいと考えています。非常に多くの制限があるため、最新の JDK にアップグレードできません。Sun の Web サイトからダウンロードし、リンク先のページに記載されているすべての手順に従いました。

実行するjavac -versionと、次のエラー メッセージが表示されます。

$ /usr/local/jdk1.2.2/bin/javac -version
Error: can't find libjava.so

/usr/local/jdk1.2.2JDK を場所にインストールしました。(Ubuntu 12.04 64 ビットを使用しています)。誰か助けてくれませんか?

前もって感謝します。

4

3 に答える 3

3

これは、新しいシステムに jdk1.3.1 をインストールする場合と同じ問題です。uname -m は x86_64 を返すため、そのオプションをいくつかのスクリプトに追加する必要があります。

/bin/.java_wrapper
/jre/bin/.java_wrapper
/jre/bin/realpath

i386 オプションの例のケースとして x86_64 を追加します。

case "`uname -m`" in
    i[3-6]86  | ia32 | ia64 | i?86 | x86_64)
        proc=i386
        ;;

各ファイルの先頭にある case ステートメントに「| x86_64」を追加するだけです。

この時点で java -version を実行すると、「セグメンテーション違反」が発生します。これを修正する方法はまだわかりません...

于 2013-01-21T16:41:45.987 に答える
2

特定のバージョンを使用する理由はさまざまであることは理解していますが、ソース コードが Java 1.2 と互換性があるという理由だけで JDK 1.2 を使用している場合は、最新の JDK の javac のスイッチを-source(および/または) ソースに通知するために使用できると思います。-targetコードの互換性。

詳細については、http://docs.oracle.com/javase/6/docs/technotes/tools/windows/javac.htmlを参照してください。

于 2012-06-04T16:38:25.830 に答える
1

Java 実行可能ファイルがlibjava.so共有ライブラリを見つけることができません:

libjava.soインストールにファイルがあるかどうかを確認します

$ find /usr/local/jdk1.2.2/ -name libjava.so

インストールが壊れていない場合(詳細がないと、あなたを助けるのは難しいでしょう)

ファイルがそこにある場合は、ファイルがあるディレクトリを LD_LIBRARY_PATH に追加してみてください。

$ export LD_LIBRARY_PATH=/usr/local/jdk1.2.2/PATH_WHERE_LIBJAVA_SO_IS_LOCATED:$LD_LIBRARY_PATH
于 2012-06-04T16:00:06.600 に答える