免责声明:我不是一名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];
...
}
}
我做错了什么?我是否正确使用了这些论据?
答案 0 :(得分: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
命令用于编译类,而不是用于运行应用程序
您可能将其与允许运行可执行类(应用程序)并接受args的<?xml version="1.0" encoding="UTF-8"?>
<buildinfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://abc.com/schema/4.0/buildinfo" xsi:schemaLocation="https://abc.com/schema/4.0/buildinfo https://abc.com/resource/4.0/buildinfo.xsd" buildinfo_version="1" account_id="23456" app_id="456321" sandbox_id="223457" build_id="1234567">
<build version="1 Jul 2016 Static" build_id="1234567" submitter="David" platform="Not Specified" lifecycle_stage="Not Specified" results_ready="true" scan_overdue="false" legacy_scan_engine="false">
<analysis_unit analysis_type="Static" published_date="2016-07-1T15:58:55-04:00" published_date_sec="324532678" status="Results Ready" engine_version="2341267"/>
</build>
</buildinfo>
命令混合使用。