2017-03-24 4 views
0

現在、特定のタイプのファイルを別のタイプのファイルに変換するSwingのファイルチューザを使用してデスクトップアプリケーションを作成しようとしています。正常に動作しているJavaを使用してbashスクリプトにオブジェクトプロパティを渡す

String[] cmd = new String[]{"C:\\cygwin64\\bin\\mintty.exe", "/cygdrive/c/Users/orhun.vatansever/workspace/extchangegui/src/extchangegui/dene.sh"}; 
       Process pr = Runtime.getRuntime().exec(cmd); 

が、私のbashscriptの内容は

cd "${0%/*}" 
java -jar xyz.jar aegis.xyz 

のようなものですので、これは私のコードは、私がしたいものを、一つの特定のXYZファイルのために働いていることを意味:関連するコード部分がありますファイルを選択し、その特定のxyzファイルでコマンドを実行します。 myfile.getName()でファイル名を取得することはできますが、このデータをどのように使用するかはわかりませんが、プロセスビルダーに置く場所はわかりません。私は2つの解決策を考えています.1つはプロセスビルダーのパラメータ(どちらがどれかわからない)を "java -jar xyz.jar" + file.getName() ""に設定し、もう1つはクリック時にスクリプトの内容を変更していますファイルチューザーのオープンボタン(これは私が思うには意味がない)。

+0

端末でスクリプトを実行する理由はありますか(画面にウィンドウとして表示されます)。代わりに "C:\\ cygwin64 \\ bin \\ bash.exe"を実行すると、ウィンドウは作成されません。 –

+0

私は、ユーザーがファイルを参照したい、多くのxyzファイルがある可能性があり、ユーザーは特定のファイルを選択したいかもしれない – Morbidity

+0

OK、それは –

答えて

0

コマンド配列に名前文字列を追加し、スクリプト内でpositional parameterと参照することができます。私は... file.getName()プロパティを経由して、その名前を取得し、何とかスクリプトに渡し、またはjava -jar xyz.jar + chosenFile.getName()

ようにそれを実行したい...やりたいことはありません。つまり、cmd[2] = "xyz"

java -jar ${2}.jar aegis.${2} 

を言いますそして、あなたはまた、を使用することを検討すべきである

java -jar xyz.jar ${2} 

、コマンド文字列、cmd[2] = file.getName()にファイル名を渡しますを入力してProcessを作成します。

+0

の意味であり、私がやりたいことではない。選択されたファイルを渡し、file.getName()プロパティを介してその名前を取得し、何らかの形でスクリプトに渡すか、 "java -jar xyz.jar" + chosenFile.getName() ""、 – Morbidity

+0

のように実行しますが、 JavaオブジェクトとgetName()Javaプロパティをファイルします。スクリプトで実行すると保存されますか? – Morbidity

+0

私はあなたが言ったことを試しましたが、エラーを返さなかったのですが、フォルダを生成しませんでした。 – Morbidity

関連する問題