gpt4 book ai didi

bash 脚本中的 Javac 不返回此类文件

转载 作者:行者123 更新时间:2023-12-02 06:45:14 28 4
gpt4 key购买 nike

我正在尝试制作一个 shell 脚本来编译并运行某个 .java 文件。 java 程序可以运行,我只在 bash 脚本方面遇到问题。

#!/bin/bash
CWD=$(pwd)
CLSPATH="$CWD/Program.java"
COMMAND="javac -classpath $CLSPATH"
eval $COMMAND
java Program

这种形式的错误是

javac: no source files

所以我将命令变量更改为

COMMAND="javac\ -classpath\ $CLSPATH"

但是这样我就得到了

./runJava.sh: line 6: javac -classpath /home/dorin/LocationWhatEver/Program.java: No such file or directory

但是文件和目录存在。有什么想法吗?

最佳答案

您没有传递实际的文件进行编译 - 相反,您将 .java 文件作为类路径传递。您的实际命令如下所示:

javac -classpath /some/dir/Program.java

虽然它应该是这样的:

javac -classpath /path/to/library.jar /some/dir/Program.java

我认为您在某处缺少实际的类路径。您的脚本很可能需要与此类似:

#!/bin/bash
CWD=$(pwd)
CLSPATH=/path/to/library.jar
SOURCE="$CWD/Program.java"
COMMAND="javac -classpath $CLSPATH $SOURCE"
eval $COMMAND
java Program

此外,我不确定 eval 方法的目的是什么。为什么不直接调用 javac 呢?我将进一步修改脚本为:

#!/bin/bash
CWD=$(pwd)
CLSPATH=/path/to/library.jar
SOURCE="$CWD/Program.java"
javac -classpath $CLSPATH $SOURCE
java Program

关于bash 脚本中的 Javac 不返回此类文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18717270/

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