【问题标题】:Java Compiler Script [Mac]Java 编译器脚本 [Mac]
【发布时间】:2017-02-16 23:16:25
【问题描述】:

我正在尝试创建一个脚本,该脚本将自动将工作目录更改为我的 Java 代码,然后编译代码。我可以直接将路径更改为我的路径,但我无法弄清楚如何在直接从终端获取“文件名”作为参数时在“文件名”上调用 java 编译器。

    #!/bin/bash
    FILE = “$1”
    open -a Terminal /Users/Jarvis/Desktop/Codes/Java/CS\ 49J/
    javac “$FILE”

【问题讨论】:

  • 为什么需要打开终端应用?
  • 因为编译后我希望能够直接运行编译好的文件。
  • 您的脚本会打开一个全新的终端窗口,并且在其中什么也不做。你了解 bash 脚本和子进程的工作原理吗?
  • 我做了一点。我的整个想法是编译 java 文件,然后能够直接从终端运行它。我不想 CD 到那个特定的文件夹,因此我有 open -a 终端
  • 只要给出整个路径就不需要 cd 了。您当前的脚本所做的就是编译。如果要启动 Java 类,则需要更多行

标签: java macos terminal


【解决方案1】:

删除FILE 分配中的空格。另外,正如@cricket_007 所提到的,您无需打开终端应用程序,只需更改目录即可。

#!/bin/bash
FILE="$1"
cd /Users/Jarvis/Desktop/Codes/Java/CS\ 49J/
javac "$FILE"

或者(我习惯在变量周围使用花括号):

#!/bin/bash
FILE="$1"
WORKING_DIR="/Users/Jarvis/Desktop/Codes/Java/CS\ 49J/"
javac "${WORKING_DIR}${FILE}"

【讨论】:

  • 我相信这会在编译后退出终端。如果我想在自动编译后直接保持不变让我执行它怎么办?
  • 脚本在子shell中执行,所以你是对的,你不会留在文件所在的目录中。
  • 也许你可以在编译后扩展脚本运行java -jar program.jar
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-06
  • 2012-01-31
  • 2016-12-15
相关资源
最近更新 更多