我正在向现有应用程序添加一些功能以显示调试信息。从错误日志视图中检查错误时,它会显示一个名为“会话数据”的内容,通常看起来像:
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
这可能对我们有用。我怎样才能获得这些信息?
答案 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