2014-07-22 10 views
6

Ich versuche, DynamoDB lokal auf einem MAC auszuführen. Die Amazon official blog sagt, ich habe die JAR-Datei zum Download und den folgenden Befehl ausführen:Ausführen von DynamoDB Local mit dem Befehl java unter Mac OS X

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

Aber ich habe den folgenden Fehler auf MAC OS X-Terminal:

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

Wut? Der Befehl scheint den Parameter -D nicht zu erkennen. Warum?

Ich arbeite auch an Linux (Fedora) und ich hatte nie ein Problem damit.

auf Mac OS X, java -version gibt mir java version "1.8.0_11"

Was könnte das Problem sein? (Ich weiß nicht, dass viel mit Java-Befehle)


Edit 1: Dank @Swapnil, können wir feststellen, dass es ein Tippfehler-Fehler auf der Amazon-Blog ist, sie verwendet einen falschen Strichzeichen (EN DASH Unicode U + 2013) für das -D Argument. Beachten Sie, dass die Amazon documentation (nicht das Blog) nicht den Tippfehler hat und sich auch auf eine up-to-date binary bezieht.

Edit 2: Mit dem richtigen Strich wird das Argument von Java interpretiert, aber ich habe immer noch eine (andere) Fehlermeldung während der Laufzeit:

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

ich es so festgelegt:

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

Es ist jetzt endlich funktioniert ... Amazon Dokumentation haben einige Probleme ..

+0

Sie können dies in dieser anderen Stack Overflow-Antwort spielen, die auch behandelt, wie man 'java.library.path' bei Bedarf programmatisch setzt: http://StackOverflow.com/a/35353377/3679676 –

Antwort

4

Die unten scheint für mich auf meinem Mac OS zu arbeiten X -

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

Nun, der Bindestrich Sie in –D verwendet habe, scheint eine ganz andere Charakter. Das verursacht wahrscheinlich das Problem.

+1

Ohh !! Ja, vielen Dank! Auf dem [Amazon Blog] (http://aws.amazon.com/de/blogs/aws/dynamodb-local-for-desktop-development/) ist der in -D verwendete Bindestrich tatsächlich ein ** EN DASH * * (U + 2013), deshalb wurde das Argument falsch interpretiert. Ich bin damit verrückt geworden! Vielen Dank! <3 –

2

Für Mac könnte es ohne -Djava.library.path Option funktionieren. Versuchen Sie, den folgenden Befehl ein:

java -jar DynamoDBLocal.jar 

Auch der Link zum Download im Blog verweist nicht auf die neueste Version DynamoDB Lokale. Sie können die neueste Version von here erhalten. Dieser Link ist auch in der AWS Documentation vorhanden.

Danke.

+0

+1 für die Links, aber ** funktioniert nicht ** ohne das Argument -Djava.library.path –

0

Ich hatte zwei Dinge zu ändern: -Djava.library.path=./DynamoDBLocal_lib/

und ändern Sie die den Namen der Bibliothek libsqlite4java-osx-libsqlite4java-osx-x86_64

0

Zusammen mit Einstellung der -Djava.library.path=./DynamoDBLocal_lib/ Ich hatte zu kopieren libsqlite4java-osx-10.4.jnilib-libsqlite4java-osx-x86_64.dylib einzurichten.