嗨,我是R语言和人津语的新手。在我的项目中,下面是添加的maven依赖项。
<dependency>
<groupId>org.renjin.cran</groupId>
<artifactId>rgeos</artifactId>
<version>0.3-2-b24</version>
</dependency>
我已经添加了上述依赖项。我还尝试了不同版本和最新版本的rgeos依赖项。
我以engine.eval(“库( rgeos )”)的形式加载rgeos包;当我在java中加载这个包时,我得到下面的错误
org.renjin.eval.EvalException: IOException while loading package org.renjin.cran:rgeos: Could not resolve native method 'rgeos_Init' in package 'rgeos'
at org.renjin.primitives.packaging.NamespaceRegistry.tryLoad(NamespaceRegistry.java:215)
at org.renjin.primitives.packaging.NamespaceRegistry.tryGetNamespace(NamespaceRegistry.java:168)
at org.renjin.primitives.packaging.NamespaceRegistry.getNamespace(NamespaceRegistry.java:130)
at org.renjin.primitives.packaging.NamespaceRegistry.getNamespace(NamespaceRegistry.java:98)
at org.renjin.primitives.packaging.Packages.library(Packages.java:40)
at org.renjin.primitives.R$primitive$library.doApply(R$primitive$library.java:73)
at org.renjin.primitives.R$primitive$library.apply(R$primitive$library.java:34)
at org.renjin.primitives.special.InternalFunction.apply(InternalFunction.java:45)
at org.renjin.eval.Context.evaluateCall(Context.java:407)
at org.renjin.eval.Context.evaluate(Context.java:282)
at org.renjin.eval.Context.evaluate(Context.java:264)
at org.renjin.primitives.special.BeginFunction.apply(BeginFunction.java:38)
at org.renjin.eval.Context.evaluateCall(Context.java:407)
at org.renjin.eval.Context.evaluate(Context.java:282)
at org.renjin.eval.Context.evaluate(Context.java:264)
at org.renjin.eval.Context.evaluate(Context.java:198)
at org.renjin.sexp.Closure.doApply(Closure.java:98)
at org.renjin.eval.ClosureDispatcher.apply(ClosureDispatcher.java:80)
at org.renjin.eval.ClosureDispatcher.applyClosure(ClosureDispatcher.java:51)
at org.renjin.sexp.Closure.apply(Closure.java:83)
at org.renjin.eval.Context.evaluateCall(Context.java:407)
at org.renjin.eval.Context.evaluate(Context.java:282)
at org.renjin.eval.Context.evaluate(Context.java:264)
at org.renjin.eval.Context.evaluateExpressionVector(Context.java:390)
at org.renjin.eval.Context.evaluate(Context.java:280)
at org.renjin.eval.Context.evaluate(Context.java:264)
at org.renjin.script.RenjinScriptEngine.eval(RenjinScriptEngine.java:168)
at org.renjin.script.RenjinScriptEngine.eval(RenjinScriptEngine.java:127)
at com.nact.Test.main(Test.java:21)
Caused by: org.renjin.eval.EvalException: Could not resolve native method 'rgeos_Init' in package 'rgeos'
at org.renjin.primitives.Native.findMethodByName(Native.java:572)
at org.renjin.primitives.Native.findMethod(Native.java:545)
at org.renjin.primitives.Native.redotCall(Native.java:364)
at org.renjin.primitives.R$primitive$$Call.apply(R$primitive$$Call.java:62)
at org.renjin.eval.Context.evaluateCall(Context.java:407)
at org.renjin.eval.Context.evaluate(Context.java:282)
at org.renjin.eval.Context.evaluate(Context.java:264)
at org.renjin.primitives.special.BeginFunction.apply(BeginFunction.java:38)
at org.renjin.eval.Context.evaluateCall(Context.java:407)
at org.renjin.eval.Context.evaluate(Context.java:282)
at org.renjin.eval.Context.evaluate(Context.java:264)
at org.renjin.eval.Context.evaluate(Context.java:198)
at org.renjin.sexp.Closure.doApply(Closure.java:98)
at org.renjin.eval.ClosureDispatcher.apply(ClosureDispatcher.java:80)
at org.renjin.eval.ClosureDispatcher.applyClosure(ClosureDispatcher.java:51)
at org.renjin.sexp.Closure.apply(Closure.java:83)
at org.renjin.eval.Context.evaluateCall(Context.java:407)
at org.renjin.eval.Context.evaluate(Context.java:282)
at org.renjin.sexp.Promise.doEval(Promise.java:92)
at org.renjin.sexp.Promise.force(Promise.java:86)
at org.renjin.eval.Context.evaluateSymbol(Context.java:345)
at org.renjin.eval.Context.evaluate(Context.java:278)
at org.renjin.sexp.Promise.doEval(Promise.java:92)
at org.renjin.sexp.Promise.force(Promise.java:86)
at org.renjin.eval.Context.evaluateSymbol(Context.java:345)
at org.renjin.eval.Context.evaluate(Context.java:278)
at org.renjin.eval.Context.evaluate(Context.java:264)
at org.renjin.invoke.codegen.ArgumentIterator.evalNext(ArgumentIterator.java:70)
at org.renjin.primitives.R$primitive$assign.apply(R$primitive$assign.java:30)
at org.renjin.primitives.special.InternalFunction.apply(InternalFunction.java:45)
at org.renjin.eval.Context.evaluateCall(Context.java:407)
at org.renjin.eval.Context.evaluate(Context.java:282)
at org.renjin.eval.Context.evaluate(Context.java:264)
at org.renjin.eval.Context.evaluate(Context.java:198)
at org.renjin.sexp.Closure.doApply(Closure.java:98)
at org.renjin.eval.ClosureDispatcher.apply(ClosureDispatcher.java:80)
at org.renjin.eval.ClosureDispatcher.applyClosure(ClosureDispatcher.java:51)
at org.renjin.sexp.Closure.apply(Closure.java:83)
at org.renjin.eval.Context.evaluateCall(Context.java:407)
at org.renjin.eval.Context.evaluate(Context.java:282)
at org.renjin.eval.Context.evaluate(Context.java:264)
at org.renjin.primitives.special.BeginFunction.apply(BeginFunction.java:38)
at org.renjin.eval.Context.evaluateCall(Context.java:407)
at org.renjin.eval.Context.evaluate(Context.java:282)
at org.renjin.eval.Context.evaluate(Context.java:264)
at org.renjin.eval.Context.evaluate(Context.java:198)
at org.renjin.sexp.Closure.doApply(Closure.java:98)
at org.renjin.eval.ClosureDispatcher.apply(ClosureDispatcher.java:80)
at org.renjin.eval.ClosureDispatcher.applyClosure(ClosureDispatcher.java:51)
at org.renjin.sexp.Closure.apply(Closure.java:83)
at org.renjin.eval.Context.evaluateCall(Context.java:407)
at org.renjin.eval.Context.evaluate(Context.java:282)
at org.renjin.eval.Context.evaluate(Context.java:264)
at org.renjin.primitives.special.BeginFunction.apply(BeginFunction.java:38)
at org.renjin.eval.Context.evaluateCall(Context.java:407)
at org.renjin.eval.Context.evaluate(Context.java:282)
at org.renjin.eval.Context.evaluate(Context.java:264)
at org.renjin.eval.Context.evaluate(Context.java:198)
at org.renjin.sexp.Closure.doApply(Closure.java:98)
at org.renjin.eval.ClosureDispatcher.apply(ClosureDispatcher.java:80)
at org.renjin.eval.ClosureDispatcher.applyClosure(ClosureDispatcher.java:51)
at org.renjin.sexp.Closure.apply(Closure.java:83)
at org.renjin.eval.Context.evaluateCall(Context.java:407)
at org.renjin.eval.Context.evaluate(Context.java:282)
at org.renjin.eval.Context.evaluate(Context.java:264)
at org.renjin.primitives.packaging.NamespaceRegistry.tryLoad(NamespaceRegistry.java:198)
... 28 more
发布于 2018-02-23 17:57:47
您可以在packages.renjin.org上检查包的状态。你可以在这里搜索你的包rgeos,它会把你带到rgeos package page。
在package页面上,您可以看到状态显示:
这个包可以由人人网加载,但编译C/FORTRAN源代码时出现错误,所有测试都失败。这个包的旧版本与人人网的兼容性更好。
如果您进一步向下滚动,您可以看到所有测试当前都失败了。您可以单击"View build log“或在其中一个失败的测试上查看失败的确切原因。在这种情况下,由于与您所经历的相同的原因,所有测试都会失败。
从页面顶部的构建日志中,我看到构建过程并不顺利,因为./configure步骤没有成功:
正在检查/usr/bin/bin版本...no configure: error: geos-config未找到或无法执行。配置: svn版本: 560正在检查geos-config...no no ERROR编译GNU R源代码失败。配置:未能在org.renjin.packaging.NativeSourceBuilder.configure(NativeSourceBuilder.java:97)执行./org.renjin.gcc.InternalCompilerException
这可能是由于我们的构建机器上缺少依赖项。在这种情况下,您可以尝试在本地构建此包。通过单击左下角的按钮"BUILD LOCALLY“,您将看到一个可以粘贴并在终端上运行的链接。在这种情况下:
curl http://packages.renjin.org/package/org.renjin.cran/rgeos/0.3-26/build/4/rebuild.sh | sh
您可以在“构建日志”部分下面看到此链接。
请让我们知道,如果您可以在本地构建此。我们对包中使用的配置和make文件的处理有一定程度的支持。但是我们还不支持可以在构建脚本中完成的所有操作,而且rgeos有一个非常广泛的configure文件。
https://stackoverflow.com/questions/48921464
复制相似问题