首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ant构建Oxygen Dita-Ot中的java类路径错误

ant构建Oxygen Dita-Ot中的java类路径错误
EN

Stack Overflow用户
提问于 2016-12-01 14:41:38
回答 3查看 653关注 0票数 0

嗨,即使在包含jdk路径位置之后,我也得到了这个错误。它的展示

代码语言:javascript
复制
Expected to find it in C:\Program Files\Java\jre1.8.0_111\lib\tools.jar

cmd代码生成了这个

代码语言:javascript
复制
C:\Program Files\Oxygen XML Editor 17\frameworks\dita\DITA-OT2.x>ant -f integrator.xml
Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre1.8.0_111\lib\tools.jar
Buildfile: C:\Program Files\Oxygen XML Editor 17\frameworks\dita\DITA-OT2.x\integrator.xml

strict:

integrate:

BUILD FAILED
C:\Program Files\Oxygen XML Editor 17\frameworks\dita\DITA-OT2.x\integrator.xml:66: The following error occurred while executing this line:
C:\Program Files\Oxygen XML Editor 17\frameworks\dita\DITA-OT2.x\integrator.xml:44: javax.xml.transform.TransformerFactoryConfigurationError: Provider net.sf.saxon.TransformerFactoryImpl not found
        at javax.xml.transform.FactoryFinder.newInstance(Unknown Source)
        at javax.xml.transform.FactoryFinder.find(Unknown Source)
        at javax.xml.transform.TransformerFactory.newInstance(Unknown Source)
        at org.dita.dost.platform.Integrator.writePlugins(Integrator.java:514)
        at org.dita.dost.platform.Integrator.integrate(Integrator.java:207)
        at org.dita.dost.platform.Integrator.execute(Integrator.java:200)
        at org.dita.dost.platform.IntegratorTask.execute(IntegratorTask.java:40)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:435)
        at org.apache.tools.ant.Target.performTasks(Target.java:456)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
        at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
        at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:441)
        at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:435)
        at org.apache.tools.ant.Target.performTasks(Target.java:456)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
        at org.apache.tools.ant.Main.runBuild(Main.java:851)
        at org.apache.tools.ant.Main.startAnt(Main.java:235)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Caused by: java.lang.ClassNotFoundException: net/sf/saxon/TransformerFactoryImpl
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at javax.xml.transform.FactoryFinder.getProviderClass(Unknown Source)
        ... 38 more

Total time: 0 seconds

是类路径还是集成器xml文件有问题?我遵循了oxygen dita-ot网站和书中给出的步骤。

我想问题出在这一部分。

代码语言:javascript
复制
 C:\Program Files\Oxygen XML Editor 17\frameworks\dita\DITA-OT2.x\integrator.xml:66: The following error occurred while executing this line:
C:\Program Files\Oxygen XML Editor 17\frameworks\dita\DITA-OT2.x\integrator.xml:44: javax.xml.transform.TransformerFactoryConfigurationError: Provider net.sf.saxon.TransformerFactoryImpl not found

我的积分器的行号(44,66)是这样说的,我无法理解。

代码语言:javascript
复制
44  <integrate ditadir="${dita.dir}" strict="${strict}"/>

65<target name="strict" description="Run integration in strict mode">
  66  <antcall target="integrate">
    67  <param name="strict" value="true"/>
    68</antcall>
  69</target>
EN

回答 3

Stack Overflow用户

发布于 2016-12-01 14:59:22

tools.jar只存在于JDK包中,不存在于JRE包中。您需要下载并安装JDK包,然后将系统属性(JAVA_HOME和PATH)链接到新的JDK8安装目录路径。

JDK8 download

毕竟,重新运行您的命令。

票数 0
EN

Stack Overflow用户

发布于 2016-12-01 22:36:33

您正尝试从命令行运行integrator.xml,错误消息指出Saxon不在类路径中。

通常,oXygen用户通过管理员权限调用oXygen,选择“文档”-“转换”-“配置转换方案”-“运行DITA OT集成器”。

代码语言:javascript
复制
Executing:
"c:\program files\oxygen xml editor 18.1\jre/bin/java" -Xmx256m -classpath "C:\Program Files\Oxygen XML Editor 18.1\tools\ant/lib/ant-launcher.jar" "-Dant.home=C:\Program Files\Oxygen XML Editor 18.1\tools\ant" org.apache.tools.ant.launch.Launcher -lib "C:\Program Files\Oxygen XML Editor 18.1\frameworks\dita\DITA-OT2.x\lib\ant-apache-resolver-1.9.4.jar" -lib "C:\Program Files\Oxygen XML Editor 18.1\frameworks\dita\DITA-OT2.x\lib\ant-launcher.jar" -lib "C:\Program Files\Oxygen XML Editor 18.1\frameworks\dita\DITA-OT2.x\lib\ant.jar" -lib "C:\Program Files\Oxygen XML Editor 18.1\frameworks\dita\DITA-OT2.x\lib\commons-codec-1.9.jar" -lib "C:\Program Files\Oxygen XML Editor 18.1\frameworks\dita\DITA-OT2.x\lib\commons-io-2.4.jar" -lib "C:\Program Files\Oxygen XML Editor 18.1\frameworks\dita\DITA-OT2.x\lib\dost-configuration.jar" -lib "C:\Program Files\Oxygen XML Editor 18.1\frameworks\dita\DITA-OT2.x\lib\dost-patches.jar" -lib "C:\Program Files\Oxygen XML Editor 18.1\frameworks\dita\DITA-OT2.x\lib\dost.jar" -lib "C:\Program Files\Oxygen XML Editor 18.1\frameworks\dita\DITA-OT2.x\lib\guava-19.0.jar" -lib "C:\Program Files\Oxygen XML Editor 18.1\frameworks\dita\DITA-OT2.x\lib\jsearch.jar" -lib "C:\Program Files\Oxygen XML Editor 18.1\frameworks\dita\DITA-OT2.x\lib\xml-apis-1.4.01.jar" -lib "C:\Program Files\Oxygen XML Editor 18.1\frameworks\dita\DITA-OT2.x\lib\xml-resolver-1.2.jar" -f "C:\Program Files\Oxygen XML Editor 18.1\frameworks/dita/DITA-OT2.x/integrator.xml" "-Dstrict=true" "-Dwebhelp.trial.license=no"

Buildfile: C:\Program Files\Oxygen XML Editor 18.1\frameworks\dita\DITA-OT2.x\integrator.xml

strict:

integrate:
      [jar] Building jar: C:\Program Files\Oxygen XML Editor 18.1\frameworks\dita\DITA-OT2.x\lib\dost-configuration.jar

BUILD SUCCESSFUL
Total time: 9 seconds

The process finished with exit code: 0

这个方法可以解决你的问题。

票数 0
EN

Stack Overflow用户

发布于 2016-12-02 09:19:08

您的代码显示您使用的是DITA的2.x版本。但您使用的是旧OT版本的integrator命令。

您可以使用氧气来运行积分器,但如果您想要从命令行运行它,请执行以下操作:

以管理员身份打开命令窗口:按Start,键入cmd,出现命令时,右键单击它,然后选择"Run as administrator".

  • Navigate to
  1. cmd.exe 2.x DITA OT:

C:\Program Files\Oxygen XML Editor 17\frameworks\dita\DITA-OT2.x

  • Enter此命令:

bin\dita -install

如果它返回到没有错误的提示符,那么您应该可以继续操作了。

顺便说一句,tools.jar错误通常不需要担心。

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

https://stackoverflow.com/questions/40904143

复制
相关文章

相似问题

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