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..
The application doesn't run on earlier JRE versions. After you download the archive, extract the contents and copy the extracted directory to a location of your choice. To start DynamoDB on your computer, open a command prompt window, navigate to the directory where you extracted DynamoDBLocal.
There is a development version known as DynamoDB Local used to run on developer laptops written in Java, but the cloud-native database architecture is proprietary closed-source.
DynamoDB Local is available as a download (requires JRE), as an Apache Maven dependency, or as a Docker image. If you prefer to use the Amazon DynamoDB web service instead, see Setting up DynamoDB (web service).
DynamoDB Local listens on port 8000 by default; you can change this by specifying the –port option when you start it. If you are using the default port, the local endpoint will be localhost:8000.
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With