java - 如何在类路径有空格的 bash 中调用 java 程序?

标签 java bash command-line-interface

假设我有一个名为 white space 的文件夹,其中包含一个名为 foo 的类文件。

在命令行上,我可以通过以下命令轻松调用 foo 程序

java -cp "white space/" foo

它会工作得很好。

我想在 Bash 中将整个命令设置为变量并调用该变量而不是整个命令本身。

所以,假设我将命令设置为以下内容

bar='java -cp "white space/" foo'

我尝试通过执行 $bar 来调用该命令,但我不断收到错误消息:

Error: Could not find or load main class space

你会如何解决这个问题?

最佳答案

不要使用变量来存储整个命令行,正是因为因为你无法容纳空格。使用数组,最好只保存选项并单独指定命令。

options=(-cp "white space/" foo)
java "${options[@]}"

或者,定义一个函数:

bar () {
    java -cp "white space/" foo
}

关于java - 如何在类路径有空格的 bash 中调用 java 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36872372/

相关文章:

python - 需要将 `-` 字符嵌入到 python argparse 中的参数中

Python:Argparse 不解析长文本参数

java - 检索给定搜索条件的字符串。括号、引号等

Cygwin bash.exe 无法运行 make,但可以在 cmd.exe 中运行

bash - shell脚本内存不足

linux - 如何使用 bash 获取处理器使用百分比?

ios - Flutter 构建 iOS 到底做了什么?这真的有必要吗?

Java Kafka 消费者组未能消费一些消息

java - Eclipse 3.5.1 编译器错误 :The type OutputFormat is not accessible due to restriction on required library . ./rt.jar

java - Servlet 的数据库处理程序