问题
I'm trying to run DynamoDB local on a MAC. The Amazon official blog says I have to download the jar file and run the following command:
$ java –Djava.library.path=. -jar DynamoDBLocal.jar
But I got the following error on MAC OS X terminal:
Error: Could not find or load main class –Djava.library.path=.
Wut? The command seams not to recognise the -D parameter.. why?
I'm also working on Linux (Fedora) and I never had any problem with it.
On MAC OS X, java -version gives me java version "1.8.0_11"
What could be the problem? (I don't know that much with java commands)
Edit 1: Thanks to @Swapnil, we can notice that there is a typo error on the Amazon blog, they used a wrong dash character (EN DASH unicode U+2013) for the -D argument. Note that the Amazon documentation (not the blog) does not have the typo error and also refers to an up-to-date binary.
Edit 2: With the correct dash, the argument is interpreted by java, but I still got a (different) error message during runtime:
SEVERE: [sqlite] SQLiteQueue[AKID_eu-west-1.db]: error running job queue com.almworks.sqlite4java.SQLiteException: [-91] cannot load library: java.lang.UnsatisfiedLinkError: no sqlite4java-osx-x86_64 in java.library.path
I fixed it like that:
java -Djava.library.path=./DynamoDBLocal_lib/ -jar DynamoDBLocal.jar
It's now finally working... Amazon documentation have some problems..
回答1:
The below seems to work for me on my Mac OS X -
java -Djava.library.path=. -jar your_jar
Well, the dash character you've used in –D seems to be a different character altogether. That's probably causing the problem.
回答2:
For Mac, it might work without -Djava.library.path option. Try the following command:
java -jar DynamoDBLocal.jar
Also, the link to the download in the blog does not point to the latest DynamoDB Local version. You can get the latest version from here. This link is also present in the AWS Documentation.
Thanks.
回答3:
Along with setting the -Djava.library.path=./DynamoDBLocal_lib/ I had to copy libsqlite4java-osx-10.4.jnilib to libsqlite4java-osx-x86_64.dylib.
回答4:
I had to change two things:
set up -Djava.library.path=./DynamoDBLocal_lib/
and change the the library name from libsqlite4java-osx to libsqlite4java-osx-x86_64
来源:https://stackoverflow.com/questions/24894109/run-dynamodb-local-with-the-java-command-on-mac-os-x