我知道这里有很多“无法访问 jarfile”问题,但我确实觉得这足以保证它自己的线程。
我正在编写一个演练,该演练的一部分涉及安装 Cygwin 并运行 .jar 文件。
问题是这个 .jar 文件需要从多个目录调用,而不是让我的读者每次需要运行它时都必须输入 .jar 的完整路径,我希望他们只需要输入对 Cygwin 进行简单配置后的 .jar 文件命令。
我尝试将 PATH 添加到 ~/.bashrc 并尝试添加 CLASSPATH,但没有成功。
每次我调用java -jar file.jar
I get Error: Unable to access jarfile file.jar
我应该怎么做才能解决这个问题?
[Edit]
我和我的姐夫谈过,他对 Linux 有一点了解,他建议我创建一个包装器来执行 jar,我进行了快速搜索,但找不到任何简单的东西。
有什么建议么?
Cygwin 已经提供了一种在 UNIX (POSIX) 样式路径和 Windows (MS-DOS) 样式路径之间进行转换的方法,它称为“cygpath http://cygwin-lite.sourceforge.net/html/cygpath.html".
Try:
java -jar `cygpath -w ./foo/bar/file.jar command file.1 file.2`
注意:这些是 cygpath 调用周围的反引号。
使用 cygpath 无需编写自己的 bash 脚本来传递内容,并且 jar 文件可以位于计算机上的任何位置。
例如,要制作一个 bash 脚本,以与 bash 环境无关的方式使用 Google 的 Closure 编译器来缩小 JavaScript 代码:
#!/bin/bash
# Script directory
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Path to Closure Compiler
COMPILER=$HOME/archive/closure-javascript.jar
# Java requires converting paths from UNIX to Windows under Cygwin
case "$(uname -s)" in
CYGWIN*) COMPILER=$(cygpath -w $COMPILER)
esac
# Java must be in the PATH
COMMAND="java -jar $COMPILER"
# Allow overriding default filename from the command line
cd $SCRIPT_DIR
rm *.min.js > /dev/null 2>&1
# Minify all files in the directory
for js in *.js; do
$COMMAND --js=$js --js_output_file=$(basename $js .js).min.js
done
该脚本应该在 Cygwin 和 Linux 下正确执行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)