2017-07-17 47 views
0

免責聲明:我是不是是Java開發人員。javac:使用參數時無效標誌錯誤

我有一個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]; 

     ... 

    } 

} 

我在做什麼錯?我是否正確使用參數?

+1

你想編譯你的程序還是執行它? –

回答

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命令編譯類(ES),不用於運行應用程序。
您可能將它與允許運行可執行類(應用程序)並接受參數的java命令混合使用。

+0

哦,男人,我覺得愚蠢。你最後一點是我的問題。我只需要在運行應用程序的時候傳遞我的值。謝謝! '$ JAVA_HOME/javac -classpath $ clp myjavaapp.java'和'$ JAVA_HOME/java -classpath $ clp myjavaapp.java「$ 1」「$ 2」「$ 3」'工作。 – user3225982

+0

不客氣。有了這樣的聲明,不要對自己粗魯;-) – davidxxx

+0

@ user3225982每當你感到啞巴你學習:) – talex