0
私はそのプログラムコードで設定ページ作られている - この設定ページで環境設定ページからパスを取得し、ボタンで開始されたプロセスでパスを使用するにはどうすればよいですか?
public class SAML
extends FieldEditorPreferencePage
implements IWorkbenchPreferencePage {
public SAML() {
super(GRID);
setPreferenceStore(RmpPlugin.getDefault().getPreferenceStore());
setDescription("Browse Appropriate files");
}
public FileFieldEditor f;
public FileFieldEditor f1;
public void createFieldEditors() {
f = new FileFieldEditor(PreferenceConstants.P_PATH,
"&Prism.bat File:", getFieldEditorParent());
addField(f);
f1 = new FileFieldEditor(PreferenceConstants.P_PATH1,
"&NuSMV Application File:", getFieldEditorParent());
addField(f1);
}
public void init(IWorkbench workbench) {
}
}
を、「prism.bat」と「NuSMV.exe」ファイルを選択するために使用される2 FileFieldEditorがあります。私は、そのコードは私の別のボタンのプログラミングでパスにアクセスした
は---
try {
IPreferenceStore store = plugin.getPreferenceStore();
ProcessBuilder pb=new ProcessBuilder(store.getString(PreferenceConstants.P_PATH));
pb.directory(new File(store.getString(PreferenceConstants.P_PATH)));
Process p=pb.start();
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
String in;
while((in = input.readLine()) != null) {
out.println(in);
}
int exitVal=p.waitFor();
if(exitVal==0)
{
out.println("Printing on console");
}
else
out.println("Process failed");
}
catch (Exception e)
{
out.println(e.toString());
e.printStackTrace();
}
私は設定ページからPrism.batファイルを選択した後、ボタンをクリックしていますたびに、ファイルが見つからないと言っています。
私には何が欠けていますか?
-thanks for response.Errorは - ** java.io.IOException: ""(ディレクトリ ""内)を実行できません:CreateProcessエラー= 2、指定されたファイルが見つかりません** 私はEclipseには初めてです。 Prism.bat "**および** NuSMV.exe" ** file fi次回FileFieldEditorから選択したファイルの状態を保存する必要があります。現在、FileFieldEditorから別のファイルを選択した場合でも、** PRISM.BAT **または** NuSMV.exe **のパスのみを保存しています。 –
私はこのようなことをします。 String command = store.getString(PreferenceConstants.P_PATH)); pb.directory(new File(store.getString(PreferenceConstants.P_PATH)); System.out.println(コマンド); //この出力を参照してコマンドプロンプトで実行します。 pub = new ProcessBuilder(command); – Ankur
このメソッドを試しましたが、出力は何もありません。単に空白になります.... つまり、 ** String command = store.getString(PreferenceConstants.P_PATH); ** 環境設定ページからパスを取得していません! 次に確認するもの –