gpt4 book ai didi

java - Eclipse 插件 > 如何以编程方式包含 jar 文件

转载 作者:行者123 更新时间:2023-12-02 08:13:30 25 4
gpt4 key购买 nike

所以...,我为 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());

现在,基本上,我需要以编程方式执行“添加 jar ...”按钮的功能。 enter image description here

为此苦恼了一段时间......

任何代码提示或指向完全执行此操作的教程的链接都会有所帮助。请不要链接到通用 Eclipse 插件教程:) 因为我现在可能已经看过它们了...

非常感谢

最佳答案

这是我的做法,不确定您的要求是否完全相同,但希望它能在某种程度上有所帮助...

        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;
}

关于java - Eclipse 插件 > 如何以编程方式包含 jar 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6896763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com