在Mac OS X上使用java命令运行DynamoDB本地版

7
我正在尝试在MAC上运行DynamoDB本地版本。 亚马逊官方博客中提到,我需要下载jar文件并运行以下命令:
$ java –Djava.library.path=. -jar DynamoDBLocal.jar

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

Error: Could not find or load main class –Djava.library.path=.

什么?命令好像无法识别-D参数...为什么?

我也在Linux(Fedora)上工作,从来没有遇到过任何问题。

在MAC OS X上,java -version给出的是java version "1.8.0_11"

可能有什么问题吗?(我不太熟悉Java命令)


编辑1:感谢@Swapnil的提醒,我们可以注意到Amazon博客存在一个错别字错误,他们使用了错误的破折号字符(EN DASH unicode U+2013)作为-D参数。请注意,Amazon文档(而不是博客)没有错别字错误,并且还提到了最新的二进制文件编辑2:使用正确的破折号后,参数被Java解释,但我仍然在运行时收到了(不同的)错误消息:

SEVERE:[sqlite] SQLiteQueue [AKID_eu-west-1.db]:运行作业队列时出错com.almworks.sqlite4java.SQLiteException:[-91]无法加载库:java.lang.UnsatisfiedLinkError:在java.library.path中没有sqlite4java-osx-x86_64

我这样修复它:
java -Djava.library.path=./DynamoDBLocal_lib/  -jar DynamoDBLocal.jar

现在终于可以工作了...亚马逊文档存在一些问题...


你可以在另一个Stack Overflow的答案中看到这一点,该答案还介绍了如何根据需要以编程方式设置java.library.path:https://dev59.com/GVsX5IYBdhLWcg3wLc-J#35353377 - Jayson Minard
4个回答

6
以下内容在我的 Mac OS X 上似乎可行 -
java -Djava.library.path=. -jar your_jar 

嗯,您在-D中使用的破折号字符似乎是完全不同的字符。这可能导致问题。


2
哦!!耶,非常感谢!在Amazon博客中,“-D”中使用的破折号实际上是EN DASH(U+2013),这就是为什么参数被误解的原因。我已经被这个问题搞疯了!谢谢你!<3 - Yves M.

2

对于 Mac 系统,可能不需要 -Djava.library.path 选项。请尝试以下命令:

java -jar DynamoDBLocal.jar

此外,博客中下载链接并不指向最新的DynamoDB本地版本。您可以从这里获取最新版本。此链接也出现在AWS文档中。
谢谢。

感谢提供链接,但是如果没有使用“-Djava.library.path”参数,它将无法正常工作 - Yves M.

0
我必须更改两件事情: 设置-Djava.library.path=./DynamoDBLocal_lib/ 并将库名称从libsqlite4java-osx更改为libsqlite4java-osx-x86_64

0

除了设置-Djava.library.path=./DynamoDBLocal_lib/之外,我还需要将libsqlite4java-osx-10.4.jnilib复制到libsqlite4java-osx-x86_64.dylib


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接