我正在尝试在本地运行 DynamoDB,具体说明如下:
http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html
我已经下载了 zip 文件,并将所有内容解压缩到一个文件夹中。
我使用的是 Windows 10。
在 Powershell 中,当我运行时在该目录中:
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb
我得到:
Error: Could not find or load main class .library.path=..DynamoDBLocal_lib
我读过这篇文章,它非常相似——我能找到的最接近的,但没有帮助: java.lang.UnsatisfiedLinkError:java.library.path中没有sqljdbc_auth
我不认为问题是它找不到类,而是它不知道library.path是什么意思。
我安装了java:
C:\Dynamo> java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b15)
Java HotSpot(TM) Client VM (build 25.91-b15, mixed mode)
在我的路径中,我有 C:\ProgramData\Oracle\Java\javapath,我认为这是正确的。
我需要 JDK 吗?不只是JRE?我是不是做错了什么?
我认为示例中的路径对于Windows来说可能不正确,但我不认为这是问题所在,我尝试了几十种不同的路径,但它们都说同样的事情。
我们发现 PowerShell 误解了
-Djava.library.path
参数。
包含参数名称或整个名称和值修复了我们案例中的问题。
java -D"java.library.path"=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb
或
java "-Djava.library.path=./DynamoDBLocal_lib" -jar DynamoDBLocal.jar -sharedDb
这个问题的答案也有帮助 如何从 Powershell 将属性传递到 jar?
在发布问题之前最后一次尝试,这次只使用普通的命令提示符而不是 powershell,它就可以工作。示例中的路径运行良好。
如果您使用的是window powershell,请使用以下命令
java -D"java.library.path"=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb