所以...,我已经为Eclipse创建了一个插件,它可以从模板等生成一个新的java项目和广告文件......然而,/ src目录中的代码无法编译,因为我需要添加一个jar文件我必须到库标签。
该项目已经是一个Java项目:
org.eclipse.jdt.core.IJavaProject javaProject = org.eclipse.jdt.core.JavaCore.create(proj);
org.eclipse.jdt.core.IClasspathEntry src = JavaCore.newSourceEntry(folder.getFullPath());
IClasspathEntry jre = JavaCore.newContainerEntry(new Path(
org.eclipse.jdt.launching.JavaRuntime.JRE_CONTAINER), new IAccessRule[0],
new IClasspathAttribute[] {
JavaCore.newClasspathAttribute("owner.project.facets", "java")
}, false);
IClasspathEntry[] entries = new IClasspathEntry[] {
src, jre
};
javaProject.setRawClasspath(entries, proj.getFullPath().append("bin"), new NullProgressMonitor());
现在,基本上,我需要按程序设计,“添加Jars ...”按钮的功能。
已经挣扎了一段时间......
任何代码提示或指向教程的链接都会对您有所帮助。请没有链接到通用Eclipse插件教程:)因为我现在可能已经看到了所有这些...
Thnx很多
答案 0 :(得分:1)
不确定如何通过eclipse API执行此操作,但是所有jar配置窗口都会写入project-name/.classpath
文件,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="lib" path="x-jars/lucene-fast-vector-highlighter-3.0.3-patch1822.jar"/>
<classpathentry kind="lib" path="x-jars/lucene-highlighter-3.0.3.jar"/>
所以一个选项是让你的设置代码在项目创建后编辑这个文件,但这可能是你想要的黑客攻击。
答案 1 :(得分:1)
这是我如何做到的,不确定你的要求是否完全一样,但希望它能以某种方式帮助......
IFile file = addJar(project, "/resources/myJar.jar", MY_JAR_TARGET_PATH, monitor); //$NON-NLS-1$
newcpEntries.add(JavaCore.newLibraryEntry(file.getFullPath(), null, null, false));
// .....
其中addJar()看起来像这样:
private static IFile addJar(IProject project, String srcPath, String targetPath, IProgressMonitor monitor) {
URL srcURL = MyPlugin.getDefault().getBundle().getEntry(srcPath);
IFile file = project.getFile(targetPath);
InputStream is = null;
try {
is = srcURL.openStream();
file.create(is, true, monitor);
} catch (CoreException e) {//...
} catch (IOException e) {//...
}
finally {
try {
if (is != null)
is.close();
} catch (IOException ignored) {}
}
return file;
}