我想从我的 java 类中安装一组字体到 windows 系统。我正在为我的 Birt Report 使用这些字体。
3 回答
您可以编写批处理/powershell 脚本并将其与应用程序中的字体文件一起包含在内。然后你可以执行脚本
Runtime.getRuntime().exec(...)
运行应用程序后,您很可能必须提高应用程序的权限。
至于传递密码。它可以运行cmd.exe
,因此它会弹出并支持用户。您还可以尝试将 exec 的返回值分配给Process
具有InputStream
和OutputStream
属性的类对象。我不知道如何正确地做到这一点。几年前,我在一个项目中做过一次,但我不再拥有代码。
如果您只需要安装一次字体,请考虑为您的 java 应用程序创建一个安装程序来处理它。有一个名为 IzPack 的简洁安装程序生成器,它允许您使用 XML 创建复杂的安装程序。它还允许您提高安装期间运行的可执行文件的权限。这就是我做这些事情的方式。
如果您在窗口中进行测试,您可以安装这些字体用户 System -> Fonts。如果您尝试将其与您的程序一起安排,则必须首先将它们包含在您的 java 资源文件中,以便稍后引用它。
希望有帮助~
如果没有本地管理员权限,则可以将自定义字体添加到字体缓存中。然后,在您注销之前,您的所有应用程序都可以使用您的自定义字体。执行此操作的 Windows API 是AddFontResource。通过 JNI 帮助程序 DLL,您可以直接调用它,或者只执行RegisterFonts实用程序。