2017-02-01 7 views
0

は、私は次のコードクラス・パラメータの欠落、最終的な引用

public class MyClass { 
    public MyClass (String myString){ 
    myFlag=myString 
    } 
    ProcessBuilder pb = new ProcessBuilder("Path to my application", "variousflags", myFlag) 
    Process p = pb.start(); 
    } 

を持っています。 MyClassのデバッグでは、私は気づいた:

最後の引用符なし。 ProcessBuilderで動作するフラグは、引用符で囲む必要があります。 は、私は私にNetbeansの「リテラル、閉じられていない文字列」のエラーメッセージが表示されますライン

myFlag= myFlag.concat("""); 

を含める必要があります。どのようにして、neatbeansのエラーを取り除くことができますか、さらには、最終的な見積りを元に戻すことができますか? おかげ

+0

を3-コメント 2 - 再起動Netbeansの、 ""しかし、私はそれが消えている理由を理解していません。最後の引用符を保持する他の文字列フラグがプロセスビルダーにあります – Guigui

+0

'stringFlag'と'もし 'String'が不変であれば、あなたの' ProcessBuilder'が渡された 'String'インスタンスを使っているかどうかを調べることができます2つの競合する文字列で '=='演算子を使用すると、デバッグチェックが実行されるまでに変更されているかどうかがわかります。 – MikaelF

+0

@MikaelF Apologies、stringFlag = myFlag、それは別です編集エラーです.1つの変数myFlagが修正されました。 – Guigui

答えて

0

それは、NetBeansやJavaのバグであったに違いない:-)問題は今消えてしまった... 残念ながら、私は、問題を再現することはできません、と私はそれが自分自身を固定し、正確際に確認していません。同じ問題に遭遇した場合 、私がお勧めします: 1-再起動するコンピュータ、 あなたは右のそれは "\"」の代わりに固定されている@MikaelF

myFlag= myFlag.concat("\""); 
2
stringFlag= stringFlag.concat("""); 

は、あなたのIDEを使用して、二重引用符で文字列を閉じて考えているので、問題が発生します。

二重引用符をエスケープしてみます。

stringFlag= stringFlag.concat("\""); 
+0

Processbuilderコンストラクターでコンマを追加すると、この問題は解決されます。 ProcessBuilder pb = new ProcessBuilder( "アプリケーションへのパス"、 "variousflags"、myFlag)この問題を解決するには、ソリューションを投稿して回答を受け入れる必要があります。 ; – MayurB

+0

@Stefan Lindnerこれまで私はそれを試してみましたが、うまくいきませんでした。\ – Guigui

+0

@ MayurB申し訳ありませんが、私のPB定義では、私のコードで。今更新する予定です。 – Guigui

関連する問題