gpt4 book ai didi

java - cygwin下无法访问jarfile

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:08:42 27 4
gpt4 key购买 nike

我知道这里有很多“无法访问 jarfile”的问题,但我确实觉得这有足够的不同,值得单独讨论。

我正在编写演练,该演练的一部分涉及安装 Cygwin 和运行 .jar 文件。

问题是这个 .jar 文件需要从多个目录调用,而不是让我的读者每次需要运行它时都必须输入 .jar 的完整路径,我希望他们只需要对Cygwin进行简单配置后,进入.jar文件命令。

我已经尝试将 PATH 添加到 ~/.bashrc 并且还尝试添加 CLASSPATH,但都没有成功。

每次我调用 java -jar file.jar 我都会得到 Error: Unable to access jarfile file.jar

我应该怎么做才能解决这个问题?

[编辑]

我和我的姐夫谈过,他对 Linux 有所了解,他建议我创建一个包装器来执行 jar,我进行了快速搜索,但找不到任何简单的东西。

有什么建议吗?

最佳答案

Cygwin 已经提供了一种在 UNIX (POSIX) 风格路径和 Windows (MS-DOS) 风格路径之间进行转换的方法,称为“cygpath”。

尝试:

java -jar `cygpath -w ./foo/bar/file.jar command file.1 file.2`

注意:这些是围绕 cygpath 调用的反引号。

使用 cygpath 无需编写您自己的 bash 脚本来传递内容,并且 jar 文件可以位于您计算机上的任何位置。

例如,以与 bash 环境无关的方式使用 Google 的 Closure 编译器制作一个压缩 JavaScript 代码的 bash 脚本:

#!/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 下正确执行。

关于java - cygwin下无法访问jarfile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16634211/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com