简体   繁体   English

ant build Oxygen Dita-Ot中的Java类路径错误

[英]Error in java class path in ant build Oxygen Dita-Ot

Hi I am getting this error even after including jdk path location. 嗨,即使包含jdk路径位置,我也收到此错误。 Its showing 其显示

Expected to find it in C:\Program Files\Java\jre1.8.0_111\lib\tools.jar

the cmd code generated this cmd代码生成了这个

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

Is there is something wrong with the class path or with the integrator xml file ? 类路径或集成器xml文件有问题吗? I had followed the steps given in oxygen dita-ot website and book . 我遵循了氧气分析网站和书中给出的步骤。

I think the problem is in this section 我认为问题在于本节

 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

And My line number(44,66) of integrator says this , to which i am unable to understand. 我的集成商的行号(44,66)对此说,我无法理解。

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>

tools.jar only exists in JDK package rather than in JRE package. tools.jar仅存在于JDK包中,而不存在于JRE包中。 You need to download JDK8 package and install it, then link the system properties(JAVA_HOME and PATH) to new JDK installation directory path. 您需要下载并安装JDK8软件包,然后将系统属性(JAVA_HOME和PATH)链接到新的JDK安装目录路径。

JDK8 download JDK8下载

After all, rerun your command. 毕竟,重新运行命令。

You are trying to run integrator.xml from the command-line and the error message says that Saxon is not in the classpath. 您试图从命令行运行integrator.xml,并且错误消息指出Saxon不在类路径中。

Usually oXygen user invoke oXygen by administrator privileges and select "Document" - "Transformation" - "Configure Transformation Scenario" - "Run DITA OT Integrator". 通常,oXygen用户通过管理员权限调用oXygen,然后选择“文档”-“转换”-“配置转换方案”-“运行DITA OT Integrator”。

转型方案

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

This method will solve your problem. 此方法将解决您的问题。

Your code shows that you are using the 2.x version of the DITA OT. 您的代码表明您正在使用DITA OT的2.x版本。 But you are using the integrator command for an older OT version. 但是,您正在对较旧的OT版本使用integrator命令。

You can use Oxygen to run the integrator, but if you want to run it from the command line, do this: 您可以使用Oxygen运行集成器,但是如果要从命令行运行,请执行以下操作:

  1. Open a command window as Administrator: Press Start, type cmd, when cmd.exe appears, right click it and choose "Run as administrator". 以管理员身份打开命令窗口:按下开始,键入cmd,出现cmd.exe时,右键单击它并选择“以管理员身份运行”。
  2. Navigate to the Oxygen 2.x DITA OT: 导航到Oxygen 2.x DITA OT:

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

  3. Enter this command: 输入此命令:

    bin\\dita -install bin \\ dita-安装

If it returns to the prompt with no errors, you should be good to go. 如果它没有任何错误返回到提示,则应该一切顺利。

By the way, the tools.jar error is usually not something to worry about. 顺便说一下,tools.jar错误通常不需要担心。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM