2012-06-01 20 views
0

我尝试安装R包“RWekajars”。不幸的是我收到以下错误信息:在Ubuntu上安装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 

没有帮助。

我在两台机器上有问题,一台运行Oracle Java(1.6.0_26),另一台运行OpenJDK(1.6.0)。所以错误信息

Need at least Java version 1.5/5.0 

似乎没有道理。也只有一个Java版本安装。

回答

3

(至少为Ubuntu)解决方案:

打开终端和在同一个终端窗口

R 
> install.packages("RWekajars") 

完成执行

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

如何去解决(这应该帮助你,如果你正在运行其他操作系统,或分布):

为了解决这个问题,我先下载的配置使用

download.packages("RWekajars") 

包源脚本,你看到的是,R决定使用

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

我用

Java版本
locate getsp 

,结果发现:

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

所以getsp类是存在的,但R可以找不到它。这就是为什么我们在执行R之前将CLASSPATH变量设置为/ usr/share/R/share/java的方式。这样R就知道在安装过程中在哪里找到getsp程序。如果您的getsp.class位于另一个目录中,则必须更改导出语句中的路径。

希望这可以帮助别人,因为我花了一段时间才弄清楚。

PS:这个问题在Ubuntu 12.04上不会发生 - 至少现在是这样。