java中路径 用代码表示_JAVA:如何从首选项页面访问文件路径并在编程代码中使用它...

我的ProcessBuilder类—

public class HelloWorldAction implements IWorkbenchWindowActionDelegate {

IWorkbenchWindow activeWindow = null;

public void run(IAction proxyAction) {

MessageConsole myConsole = null;

String name = "outputConsole";

ConsolePlugin plugin = ConsolePlugin.getDefault();

IConsoleManager conMan = plugin.getConsoleManager();

IConsole[] existing = conMan.getConsoles();

for (int i = 0; i < existing.length; i++)

if (name.equals(existing[i].getName()))

myConsole = (MessageConsole) existing[i];

//no console found, so create a new one

if (myConsole == null)

myConsole = new MessageConsole(name, null);

conMan.addConsoles(new IConsole[]{myConsole});

IWorkbench wb = PlatformUI.getWorkbench();

IWorkbenchWindow win = wb.getActiveWorkbenchWindow();

IWorkbenchPage page = win.getActivePage();

String id = IConsoleConstants.ID_CONSOLE_VIEW;

try

{

IConsoleView view = (IConsoleView) page.showView(id);

view.display(myConsole);

}

catch (Exception e)

{

}

MessageConsoleStream out = myConsole.newMessageStream();

out.println("Prism Button Works !");

try { //to clear the console on every click of button

IViewPart view = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(IConsoleConstants.ID_CONSOLE_VIEW);

if (view != null) {

(myConsole).clearConsole();

}

ProcessBuilder pb=new ProcessBuilder("C:\\Program Files\\prism-4.0\\bin\\prism.bat");

pb.directory(new File("C:\\Program Files\\prism-4.0\\bin"));

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();

}

}

// IActionDelegate method

public void selectionChanged(IAction proxyAction, ISelection selection) {

// do nothing, action is not dependent on the selection

}

// IWorkbenchWindowActionDelegate method

public void init(IWorkbenchWindow window) {

activeWindow = window;

}

// IWorkbenchWindowActionDelegate method

public void dispose() {

// nothing to do

}

}

我的FileFieldEditorClass

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) {

}

}

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

和ProcessBuilder类在com.myplugin.rmp包中,

现在建议我访问的方式.

解决方法:

在构建ProcessBuilder的try-block中尝试这个:

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();

标签:java,eclipse,eclipse-plugin

来源: https://codeday.me/bug/20191002/1844030.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值