0

Rパッケージ「RWekajars」をインストールしてみます。残念ながら、次のエラー メッセージが表示されます。

* installing *source* package ‘RWekajars’ ...
** Paket ‘RWekajars’ erfolgreich entpackt und MD5 Summen überprüft
Exception in thread "main" java.lang.NoClassDefFoundError: getsp
Caused by: java.lang.ClassNotFoundException: getsp
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: getsp.  Program will exit.
./configure: Zeile 50: test: -ge: Einstelliger (unärer) Operator erwartet.
./configure: Zeile 51: test: -eq: Einstelliger (unärer) Operator erwartet.
Need at least Java version 1.5/5.0.

Ubuntu 11.04 を使用していますが、Ubuntu 10.10 でも同じ問題があります。

R - Java 構成のリフレッシュ

R CMD javareconf

助けにはなりませんでした。

2 つのマシンで問題があり、1 つは Oracle Java (1.6.0_26) を実行し、もう 1 つは OpenJDK (1.6.0) を実行します。だからエラーメッセージ

Need at least Java version 1.5/5.0 

正当化されないようです。また、インストールされている Java バージョンは 1 つだけです。

4

1 に答える 1

3

解決策(少なくともubuntuの場合):

ターミナルを開いて実行

export CLASSPATH=/usr/share/R/share/java

同じ端末ウィンドウで

R
> install.packages("RWekajars")

終わり。

ソリューションへのアクセス方法 (別の OS またはディストリビューションを実行している場合に役立ちます):

この問題を解決するために、最初にパッケージソースをダウンロードしました

download.packages("RWekajars")

configure スクリプトでは、R が Java のバージョンを次のように決定することがわかります。

java_version=`${JAVA} getsp "java.version"`

使った

locate getsp

そして、見つけた:

/usr/share/R/share/java/getsp.class

したがって、getsp クラスは存在しますが、R はそれを見つけることができません。これが、R を実行する前に CLASSPATH 変数を /usr/share/R/share/java に設定する理由です。このようにして、R はインストール プロセス中に getsp プログラムの場所を認識します。getsp.class が別のディレクトリにある場合は、export ステートメントのパスを変更する必要があります。

それを理解するのにしばらく時間がかかったので、これが誰かに役立つことを願っています。

PS: この問題は、少なくとも今のところ、ubuntu 12.04 では発生しません。

于 2012-06-01T18:27:49.583 に答える