2013-01-14 81 views
1

我需要使用Eclipse運行時配置(ILaunchConfiguration)啓動Java程序。但是,我想提供程序作爲.jar文件(作爲插件的一部分)運行,而不是作爲Eclipse項目運行。使用Eclipse運行時配置啓動jar文件

似乎爲了從Eclipse運行時配置啓動Java程序我需要指定一個項目(和主類)。

如何使用配置框架啓動任意.jar文件?

+0

,你能否證實,如果我理解正確的話您的問題。你需要的是能夠使用Eclipse JDT啓動和調試'jar'文件,但是你沒有在該jar文件的工作區中有任何eclipse項目。正確? –

+0

正確。我的答案通過指定JAR文件的類路徑解決了這個問題(因此不需要項目)。 –

回答

0

本文幫助:

http://eclipse.org/articles/Article-Java-launch/launching-java.html

我使用下面的代碼運行.jar文件,這是我的插件的lib目錄內:

IPath path = new Path("lib" + File.separator + "some.jar"); 
Bundle bundle = Platform.getBundle(IDs.PLUGIN_ID); 
URL url = FileLocator.find(bundle, path, null); 
URI uri = FileLocator.resolve(url).toURI(); 
File file = URIUtil.toFile(uri); 
IPath resolvedPath = new Path(file.toString()); 
IRuntimeClasspathEntry jar = JavaRuntime.newArchiveRuntimeClasspathEntry(resolvedPath); 

IPath systemLibsPath = new Path(JavaRuntime.JRE_CONTAINER); 
IRuntimeClasspathEntry systemLibsEntry = 
JavaRuntime.newRuntimeContainerClasspathEntry(systemLibsPath, IRuntimeClasspathEntry.STANDARD_CLASSES); 

List<String> classpath = new LinkedList<>(); 
classpath.add(aproveJar.getMemento()); 
classpath.add(systemLibsEntry.getMemento()); 

configuration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_CLASSPATH, classpath); 
configuration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_DEFAULT_CLASSPATH, false);