ddd*_*ddd 8 java git bash classpath
我下载了SymmetricDS,一种用于数据库复制的工具,并尝试在我的 Windows7 机器上运行它。该程序可以从命令行启动,它适用于 Windows 终端。但是我总是更喜欢Git Bash命令行的东西。sym但是,当我运行命令时,出现错误:
Error: Could not find or load main class org.jumpmind.symmetric.SymmetricLauncher
Run Code Online (Sandbox Code Playgroud)
这个工具是用Java编写的。我安装了 JDK 1.8。Git的Bash的继承所有环境变量,包括$PATH和$JAVA_HOME从Windows。但是为什么它会抱怨找不到类?
该sym命令实际上是在运行以下命令:
exec "$SYM_JAVA" $SYM_OPTIONS -cp "$CLASSPATH" org.jumpmind.symmetric.SymmetricLauncher "$@"
Run Code Online (Sandbox Code Playgroud)
所有的 jars 都位于lib应用程序的根目录下。类路径定义在sym.service.conf内部conf目录中:
# 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
Run Code Online (Sandbox Code Playgroud)
我echo $CLASSPATH在exec打印出类路径之前添加了它,它似乎确实让所有这些都正确:
/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/*
Run Code Online (Sandbox Code Playgroud)
Von*_*onC 12
这可能与此线程有关:
在 Windows 上,路径分隔符是分号(“
;”而不是“:”)。
不要问为什么。传统上,分号被 Bash 解释为命令分隔符,因此您必须对其进行转义:
$ java -cp lib/clojure-1.1.0.jar\;lib/clojure-contrib-1.1.0.jar
Run Code Online (Sandbox Code Playgroud)
如果你想知道它为什么与 PATH 一起工作:MSys 有特殊的处理例程。
| 归档时间: |
|
| 查看次数: |
2819 次 |
| 最近记录: |