所以我今天有一个任务,自动化在 LibreOffice 中选择 Java 包的过程(当你在 GPO 中安装新的 Java 版本时,你必须在 LibreOffice 中通过 Tools->Settings->LibreOffice-> 手动选择新版本的 Java先进的)。这个想法非常简单,我需要更改的所有内容就是这个带有 PowerShell 脚本的简单 xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<!--This is a generated file. Do not alter this file!-->
<java xmlns="http://openoffice.org/2004/java/framework/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<enabled xsi:nil="true"/>
<userClassPath xsi:nil="false">//server/public/base/mysql-connector-java-5.1.25/mysql-connector-java-5.1.25-bin.jar</userClassPath>
<vmParameters xsi:nil="true"/>
<jreLocations xsi:nil="true"/>
<javaInfo xsi:nil="false" vendorUpdate="2013-05-02" autoSelect="false">
<vendor>Oracle Corporation</vendor>
<location>file:///C:/Program%20Files%20(x86)/Java/jre1.8.0_91</location>
<version>1.8.0_91</version>
<features>0</features>
<requirements>0</requirements>
<vendorData>660069006C0065003A002F00[...]76006D002E0064006C006C00</vendorData> //250+ hex characters
</javaInfo>
</java>
一切都很顺利,直到我注意到这个 vendorData 元素。它对每个包都是独一无二的,包含 250 多个十六进制字符。当我尝试在其中手动更改某些内容时,LibreOffice 中 Java 包的选择会自动取消选中,如果我再次手动选择包,十六进制字符串将自动生成。我认为这个字符串包含校验和。
有谁知道,这个字符串是如何生成的?是否有任何 LibreOffice 文档,可以在其中找到类似的内容?
XML 文件通常位于%appdata%\Roaming\LibreOffice\4\user\config\javasettings_Windows_x86.xml
十六进制字符串的长度各不相同,但其中的某些部分似乎是恒定的。