小编joa*_*kie的帖子

将 jpackage 与 WiX 4 结合使用

我正在尝试打包一个适用jpackage于 Windows 的应用程序。我正在使用Java 19WiX 4

Package Id      Version              Commands
---------------------------------------------
wix             4.0.0-preview.1      wix
Run Code Online (Sandbox Code Playgroud)
java 19.0.1 2022-10-18
Java(TM) SE Runtime Environment (build 19.0.1+10-21)
Java HotSpot(TM) 64-Bit Server VM (build 19.0.1+10-21, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)

根据Packaging Tool User's Guide,生成windows安装包的要求是:

需要 WiX 3.0 或更高版本。

但是,当尝试生成包时,我收到错误:

[09:26:34.026] Can not find WiX tools (light.exe, candle.exe)
[09:26:34.026] Download WiX 3.0 or later from https://wixtoolset.org and add it to the PATH.
Run Code Online (Sandbox Code Playgroud)

问题的本质很清楚。jpackage不支持WiX 4,尽管它没有以纯文本形式写入任何地方。

解决方案也很明确,我安装了WiX 3 …

java jpackage

12
推荐指数
1
解决办法
1344
查看次数

非空断言运算符 (!!) 奇怪的行为

我正在使用当前最新的 Kotlin 版本 ( 1.9.22) 并遇到了我无法解释的行为。

此代码会产生运行时错误 ( NullPointerException):

fun main() {
    var name: String? = null
    println(name!!.length)
}
Run Code Online (Sandbox Code Playgroud)

虽然此代码会产生编译错误 ( Unresolved reference: length)

fun main() {
    var name: String? = "Joe"
    name = null
    println(name!!.length)
}
Run Code Online (Sandbox Code Playgroud)

为什么简单地对可为 null 的name变量进行重新分配就可以让我免于陷入困境NullPointerException?我希望这两个代码片段在功能上是相同的。

compiler-errors nullpointerexception kotlin

1
推荐指数
1
解决办法
101
查看次数