bla*_*hli 15 java bash cygwin classpath
我正在尝试编写一个BASH脚本来运行我的Java程序(常见问题,对吗?).我只是不能让它工作.经过多次编辑,以下是我尝试设置类路径然后执行程序的方法:
java -classpath 'cygpath -u "/cygdrive/c/Projects/common/lib/rome-1.0.jar:/cygdrive
/c/Projects/common/lib/jdom-1.0.jar:/cygdrive/c/Projects/common/lib/jsoup-1.6.1.jar:
/cygdrive/c/Projects/common/lib/mysql-connector-java-5.1.18-bin.jar:/cygdrive/c/Projects
/Freereader/bin/"' com.free.syndication.SQLfeeder
Run Code Online (Sandbox Code Playgroud)
抱歉,混乱,我只想一下子做所有事情.它告诉我,我的程序的主要类无法找到!((
有任何想法吗?
rrh*_*tjr 12
尝试:
java -classpath `cygpath -u "/cygdrive/c/Projects/common/lib/rome-1.0.jar;/cygdrive
/c/Projects/common/lib/jdom-1.0.jar;/cygdrive/c/Projects/common/lib/jsoup-1.6.1.jar;
/cygdrive/c/Projects/common/lib/mysql-connector-java-5.1.18-bin.jar;/cygdrive/c/Projects
/Freereader/bin/"` com.free.syndication.SQLfeeder
Run Code Online (Sandbox Code Playgroud)
$(command)比反引号更清晰`command`cygpath有一个-p选项可以在Windows和Unix之间转换类似PATH的值(而不是单个路径名),即
cygpath -pu 'C:\Users\me\bin;C:\Users\me\project\bin' 会给 /cygdrive/c/Users/me/bin:/cygdrive/c/Users/me/project/bincygpath -pw 将在相反的方向做同样的事情请注意cygpath -u "/cygdrive/c"(在您的问题中)不会改变任何内容,因为目录名已经是所需的(Unix)语法.你也可以省略它.
所以,命令变为:
CP="C:/Projects/common/lib/rome-1.0.jar;C:/Projects/common/lib/jdom-1.0.jar;C:/Projects/common/lib/jsoup-1.6.1.jar;
C:/Projects/common/lib/mysql-connector-java-5.1.18-bin.jar;C:/Projects
/Freereader/bin"
# for a Windows Java binary:
java -classpath "$(cygpath -pw "$CP")" com.free.syndication.SQLfeeder
# for a Unix Java binary:
java -classpath "$(cygpath -pu "$CP")" com.free.syndication.SQLfeeder
Run Code Online (Sandbox Code Playgroud)
或者,您可以从Unix风格的类路径开始,但命令保持不变.在任何一种情况下,如果类路径已经是所需的语法,你当然可以省略对cygpath的调用.
| 归档时间: |
|
| 查看次数: |
20530 次 |
| 最近记录: |