2017-09-06 159 views
1

我下載了SymmetricDS,這是一個用於數據庫複製的工具,並試圖在我的Windows7機器上運行它。該程序可以從命令行啓動,它可以與Windows終端一起使用。不過,我總是更喜歡Git Bash命令行的東西。當我運行命令sym雖然,我得到了錯誤:無法使用Git Bash運行Java應用程序

Error: Could not find or load main class org.jumpmind.symmetric.SymmetricLauncher 

該工具是用Java編寫。我安裝了JDK 1.8。 Git Bash繼承了Windows中的所有環境變量,包括$PATH$JAVA_HOME。但爲什麼它抱怨找不到課堂?

sym命令確實運行以下命令:

exec "$SYM_JAVA" $SYM_OPTIONS -cp "$CLASSPATH" org.jumpmind.symmetric.SymmetricLauncher "[email protected]" 

所有的罐子都位於lib應用程序的根目錄下。類路徑是在sym.service.confconf目錄中定義:

# Java Classpath 
wrapper.java.classpath.1=patches 
wrapper.java.classpath.2=patches/* 
wrapper.java.classpath.3=lib/*.jar 
wrapper.java.classpath.4=web/WEB-INF/lib/*.jar 

# Application main class and arguments 
wrapper.app.parameter.1=org.jumpmind.symmetric.SymmetricLauncher 

我加echo $CLASSPATHexec前右打印出來的類路徑和它似乎讓所有的人的權利:

/c/Users/dnj0109/Apps/symmetric-server-3.8.29/patches: 
/c/Users/dnj0109/Apps/symmetric-server-3.8.29/patches/*: 
/c/Users/dnj0109/Apps/symmetric-server-3.8.29/lib/*: 
/c/Users/dnj0109/Apps/symmetric-server-3.8.29/web/WEB-INF/lib/* 
+0

這個答案有什麼缺失嗎? – VonC

回答

1

那可能與to this thread

On Windows, the path separator is a semicolon (' ; ' instead of ' : ').
Don't ask why. Traditionally, the semicolon is interpreted by the Bash as the command separator, so you'll have to escape it:

$ java -cp lib/clojure-1.1.0.jar\;lib/clojure-contrib-1.1.0.jar 

If you wonder why it works with PATH: MSys has special handling routines for that.

+1

是的,你說得對,但是訣竅是什麼? – Leon

+0

@Leon事實上,我不得不逃避';'在bash中。 – VonC