免责声明:我不是 Java 开发人员。
我有一个 shell 脚本,它将变量传递到我的 java 程序中。
#!/bin/bash
$JAVA_HOME/javac -classpath $clp myjavaapp.java "$1" "$2" "$3"
当我运行此脚本时,出现以下错误:
javac: invalid flag: /public/rest/api/1.0/cycles/search?versionId=-1&projectId=10005
Usage: javac <options> <source files>
use -help for a list of possible options
其中 /public/rest/api/1.0/cycles/search?versionId=-1&projectId=10005
是在 $3
处传递的值。
这是我的 myjavaapp.java
文件的内容示例:
package myjavaapp;
...
public class myjavaapp {
public static void main(String[] args) throws URISyntaxException, IllegalStateException, IOException {
...
String variable1 = args[0];
String variable2 = args[1];
String variable3 = variable2 + args[2];
...
}
}
我做错了什么?我是否正确使用了参数?
最佳答案
问题可能是 $clp
变量的值,即 /public/rest/api/1.0/cycles/search?versionId=-1&projectId=10005
和这不是 javac
的有效选项。
首先检查它的值。
然后,传递的参数"$1""$2""$3"
没有任何意义:
$JAVA_HOME/javac -classpath $clp myjavaapp.java "$1" "$2" "$3"
javac
命令用于编译类,而不是用于运行应用程序。
您可能将其与允许运行可执行类(应用程序)并接受参数的 java
命令混合。
关于javac:使用参数时出现无效标志错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45150040/