如何获取错误中显示的“会话数据”?

时间:2010-01-25 09:41:18

标签: eclipse

我正在向现有应用程序添加一些功能以显示调试信息。从错误日志视图中检查错误时,它会显示一个名为“会话数据”的内容,通常看起来像:

eclipse.buildId=M20090917-0800
java.version=1.6.0_11
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=sv_SE
Framework arguments:  -product org.eclipse.epp.package.rcp.product
Command-line arguments:  -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.rcp.product

这可能对我们有用。我怎样才能获得这些信息?

2 个答案:

答案 0 :(得分:0)

其中一些信息应该可以从插件到org.eclipse.core.runtime.Platform课程,如org.eclipse.debug.internal.core.SystemVariableResolver source code所示:

public String resolveValue(IDynamicVariable variable, String argument) throws CoreException {
    if ("ARCH".equals(argument)) { //$NON-NLS-1$ 
        return Platform.getOSArch(); 
    } else if ("ECLIPSE_HOME".equals(argument)) { //$NON-NLS-1$ 
        URL installURL = Platform.getInstallLocation().getURL(); 
        IPath ppath = new Path(installURL.getFile()).removeTrailingSeparator(); 
        return getCorrectPath(ppath.toOSString()); 
    } else if ("NL".equals(argument)) { //$NON-NLS-1$ 
        return Platform.getNL(); 
    } else if ("OS".equals(argument)) { //$NON-NLS-1$ 
        return Platform.getOS(); 
    } else if ("WS".equals(argument)) { //$NON-NLS-1$ 
        return Platform.getWS(); 
    } 
    return null;
} 

Platform.getCommandLineArgs()应该完成eclipse会话的显示(不过你的程序)。


有关RCP计划,请参阅this thread

  

使用Application start(IApplicationContext context)方法:

String[] args = (String[]) context.getArguments().get(IApplicationContext.APPLICATION_ARGS);

答案 1 :(得分:0)

您所看到的是Eclipse程序的会话信息,而不是您的。

您的程序在自己的JVM中运行,并且参数少得多。 eclipse环境的东西与你的程序并不是很相关。

程序的实际命令行参数当然可以作为main()方法的参数。在Java属性中可以看到一些其他可能感兴趣的项目,您可以使用System.getProperty()获得这些项目。本文档包含“标准”属性的名称:http://java.sun.com/j2se/1.4.2/docs/api/java/lang/System.html#getProperties%28%29