JAVA:如何从首选项页访问文件路径并在编程代码中使用它

JAVA:如何从首选项页访问文件路径并在编程代码中使用它,java,eclipse,eclipse-plugin,Java,Eclipse,Eclipse Plugin,我的ProcessBuilder类--- } FileFieldEditor类位于com.myplugin.rmp.preferences包中 ProcessBuilder类位于com.myplugin.rmp包中 现在建议我访问的方法。f1.getStringValue()根据Javadoc返回字段编辑器的值 为了使process builder能够访问f1字段,必须在创建process builder的类中访问f和f1。为此,您可以在此类构造函数中添加这些字段 public class Cr

我的ProcessBuilder类---

}

FileFieldEditor类位于com.myplugin.rmp.preferences包中 ProcessBuilder类位于com.myplugin.rmp包中

现在建议我访问的方法。

f1.getStringValue()
根据Javadoc返回字段编辑器的值

为了使process builder能够访问f1字段,必须在创建process builder的类中访问f和f1。为此,您可以在此类构造函数中添加这些字段

public class CreateProcessBuilderClass {

    private final FileFieldEditor f;

    private final FileFieldEditor FileFieldEditor f1;

    // in the method creating the process builder
    ProcessBuilder pb=new ProcessBuilder(f.getStringValue());
    pb.directory(new File(f1.getStringValue());


}

在构建ProcessBuilder的Try块中尝试以下操作:

 IPreferenceStore store = plugin.getPreferenceStore();

 ProcessBuilder pb=new ProcessBuilder(store.getString(PreferenceConstants.P_PATH);
 pb.directory(new File(store.getString(PreferenceConstants.P_PATH1));
 Process p=pb.start();

谢谢你的回复。但是ProcessBuilder代码位于同一项目的另一个类和另一个包中。你能帮我用代码说明如何用f1替换ProcessBuilder吗。getStringValue()getStringValue()方法是公共的。因此,您只需将f1引用传递给process builder即可。您的意思是>IPreferenceStore=RmpPlugin.getDefault().getPreferenceStore();String bat_Path=store.getString(PreferenceConstants.P_Path);ProcessBuilder pb=新的ProcessBuilder(bat_路径);目录(新文件(bat_路径));进程p=pb.start();我试过了,但这不起作用,你能给我一些方法来访问ProcessBuilderMPPlugin.getDefault().getPreferenceStore().getString(PreferenceConstants.P_路径)中的f1吗‌​) 应该可以工作。有什么问题吗?这可以正常工作,没有错误,但当我按按钮运行Prism.bat时,会显示此错误java.io.IOException:无法运行程序“”(在目录“”中):CreateProcess error=2,系统找不到指定的文件。非常感谢您的回答。之前,它显示了相同的错误。这就是我再次询问您的原因。我的首选项页面有两个FileFieldEditor,分别采用“.bat”和“.exe”文件。此错误意味着无法从首选项页获取路径。请告诉我如何修复。谢谢。为什么有两个不同的插件(RmpPlugin和ConsolePlugin)?看起来您正在保存其中一个的设置,但正在从另一个读取。如果您确实需要两个不同的插件,此插件可能会帮助您(但我自己从未尝试过):Console plugin用于显示控制台屏幕以打印输出。实际上,它不是一个插件,我在插件编程中使用它来打印输出。是的,但我需要从一个插件访问路径,并在另一个插件中使用此路径来运行它。是的,我需要首先从首选项页面选择路径,然后在单击后按Ok*工作台上的Prism按钮,然后它应该启动Prism.bat文件并在控制台上显示输出。但它说找不到文件…但是
public class CreateProcessBuilderClass {

    private final FileFieldEditor f;

    private final FileFieldEditor FileFieldEditor f1;

    // in the method creating the process builder
    ProcessBuilder pb=new ProcessBuilder(f.getStringValue());
    pb.directory(new File(f1.getStringValue());


}
 IPreferenceStore store = plugin.getPreferenceStore();

 ProcessBuilder pb=new ProcessBuilder(store.getString(PreferenceConstants.P_PATH);
 pb.directory(new File(store.getString(PreferenceConstants.P_PATH1));
 Process p=pb.start();