该问题针对的是熟悉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"
最佳答案
这是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文件的另一个版本。