首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不同的驱动器中包含jar到jar文件中的清单文件

问如何在不同的驱动器中包含jar到jar文件中的清单文件
EN

Stack Overflow用户
提问于 2020-06-25 10:49:02
回答 1查看 341关注 0票数 3

我正在开发一个遗留应用程序,它通过使用包org.apache.tools.ant.taskdefs使用ant任务来使用Javadoc生成。在那里,我需要通过maven给出的类路径。这个类路径主要在maven本地存储库中有jar路径。

代码语言:javascript
复制
        Javadoc javadoc = new Javadoc();
        javadoc.setUseExternalFile(true);
        javadoc.setProject(proj);
        javadoc.setClasspath(new Path(proj, classpath));

问题是,这个类路径足够长,因此不允许在Windows上执行,这会导致以下错误。

代码语言:javascript
复制
enterJavadoc failed: java.io.IOException: Cannot run program "C:\jdk1.8.0_144\bin\javadoc.exe": CreateProcess error=206, The filename or extension is too long code here

对于这个问题,我所做的就是创建一个pathing,它在其清单文件中包含了长类路径。因此,我将这个jar文件添加为Javadoc任务的类路径。我在ant中使用ManifestClassPath任务为我的长类路径中的jars生成相对路径。

代码语言:javascript
复制
    ManifestClassPath mc = new ManifestClassPath();
    mc.setProject(proj);
    mc.addClassPath(new Path(proj, classPath));
    mc.setJarFile(new File(pathingJar));
    mc.setProperty("classpath");
    mc.setMaxParentLevels(20);
    mc.execute();
    Jar jar = new Jar();
    Manifest manifest = new Manifest();
    Manifest.Attribute attribute = new Manifest.Attribute();
    attribute.setName("Class-Path");
    attribute.setValue(proj.getProperty("classpath"));
    manifest.addConfiguredAttribute(attribute);
    jar.addConfiguredManifest(manifest);
    jar.setDestFile(new File(pathingJar));
    jar.setProject(proj);
    jar.execute();
    javadoc.setClasspath(new Path(proj, pathingJar));

此解决方案可以工作,直到我在maven本地存储库所在的同一驱动器中开发该解决方案。但是maven本地存储库位于不同的驱动器中,因为它不能为不同的驱动器生成相对路径,所以会失败。然后,我尝试使用文件协议来处理类路径,如下所示

代码语言:javascript
复制
Class-Path: file:///C:/mvn_repo/...  file:///C:/mvn_repo/... ...

由于Javadoc任务正在失败,此解决方案似乎不起作用。有没有其他方法尝试使用粘贴jar来修复这个长类路径问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-02 13:55:26

正如“侯爵”提到的,你不能。

报表中的

类路径条目是相对URL。

无论如何,您可以使用带有文件夹链接的解决方案。在pathing的驱动器上,您可以创建一个指向maven目录的文件夹链接。文件夹链接可以指向另一个驱动器。

代码语言:javascript
复制
mklink /J "mvn_repo_link" "C:\mvn_repo". 

然后可以通过mvn_repo_link子目录使用相对路径。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62573605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档