首页 文章

在Mac OS X上使用java命令运行DynamoDB Local

提问于
浏览
6

我正在尝试在MAC上本地运行DynamoDB . Amazon official blog说我必须下载jar文件并运行以下命令:

$ java –Djava.library.path=. -jar DynamoDBLocal.jar

但是我在MAC OS X终端上遇到以下错误:

错误:无法找到或加载主类-Djava.library.path = .

武汉理工大学?命令接缝不识别-D参数..为什么?

我也在研究Linux(Fedora),我从来没有遇到任何问题 .

在MAC OS X上, java -version 给了我 java version "1.8.0_11"

可能是什么问题呢? (我对java命令不太了解)


Edit 1 :感谢@Swapnil,我们注意到亚马逊博客上存在拼写错误,他们使用了错误的破折号字符(EN DASH unicode U 2013)作为 -D 参数 . 请注意,Amazon documentation(不是博客)没有拼写错误,也指up-to-date binary .

Edit 2 :使用正确的破折号,参数由java解释,但在运行时仍然有一个(不同的)错误消息:

SEVERE:[sqlite] SQLiteQueue [AKID_eu-west-1.db]:运行作业队列错误com.almworks.sqlite4java.SQLiteException:[ - 91]无法加载库:java.lang.UnsatisfiedLinkError:no sqlite4java-osx-x86_64 in的java.library.path

我这样解决了:

java -Djava.library.path=./DynamoDBLocal_lib/  -jar DynamoDBLocal.jar

它现在终于工作了...亚马逊文档有一些问题..

4 回答

  • 2

    我不得不改变两件事:设置 -Djava.library.path=./DynamoDBLocal_lib/

    并将库名称从 libsqlite4java-osx 更改为 libsqlite4java-osx-x86_64

  • 5

    以下似乎适用于我的Mac OS X -

    java -Djava.library.path=. -jar your_jar
    

    嗯,你在 –D 中使用的破折号字符似乎完全是一个不同的角色 . 这可能是导致问题的原因 .

  • 0

    对于Mac,它可以在没有-Djava.library.path选项的情况下工作 . 请尝试以下命令:

    java -jar DynamoDBLocal.jar
    

    此外,博客中下载的链接并未指向最新的DynamoDB Local版本 . 您可以从here获取最新版本 . 此链接也出现在AWS Documentation中 .

    谢谢 .

  • 0

    随着 -Djava.library.path=./DynamoDBLocal_lib/ 的设置,我不得不将 libsqlite4java-osx-10.4.jnilib 复制到 libsqlite4java-osx-x86_64.dylib .

相关问题