在Ubuntu上运行SimGrid-Java示例时出现UnsatisfiedLinkError

时间:2016-03-24 11:37:02

标签: java intellij-idea simulation simgrid

此问题面向熟悉SimGrid的人。 我从昨天起就一直在困惑,但我无法从simgrid-java发布任何例子。他们每个都失败,但有例外:

Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/simgrid-java455637045639603622/libsimgrid.so: libboost_context.so.1.55.0: cannot open shared object file: No such file or directory
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1851)
    at java.lang.Runtime.load0(Runtime.java:795)
    at java.lang.System.load(System.java:1062)
    at org.simgrid.NativeLib.loadLib(NativeLib.java:116)
    at org.simgrid.NativeLib.nativeInit(NativeLib.java:35)
    at org.simgrid.NativeLib.nativeInit(NativeLib.java:26)
    at org.simgrid.msg.Msg.<clinit>(Msg.java:115)
    at async.AsyncTest.main(AsyncTest.java:14)

我该如何解决这个问题?

以下是我运行SimGrid-Java示例的详细步骤:

1)我从here

下载了zip文件

1a)我已经安装了libboost-context-dev,因此它是libboost-context-dev is already the newest version.

2)在examples-java目录中,我运行javac -classpath /home/ken/Downloads/simgrid.jar async/AsyncTest.java

3)然后我运行java -classpath .:/home/ken/Downloads/simgrid.jar async/AsyncTest ../platforms/platform.xml ./async/asyncDeployment.xml

注意:我使用java version "1.7.0_95"

1 个答案:

答案 0 :(得分:2)

这是SimGrid v3.12版本中的documented错误。

如ysdx所述,您应该在您的计算机上手动安装boost-context库,以使此jar文件正常工作。该库必须精确地使用1.55版。如果您有Ubuntu或Debian,只需在终端中键入: apt-get install libboost-context1.55.0

如果您的系统抱怨您的发行版中不存在此软件包,则此版本的jar文件在您的计算机上不可用。如果发生这种情况,请尝试从Jenkins as explained in the documentation的每晚构建中下载另一个版本的jar文件。