问题标签 [java-14]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
947 浏览

java-14 - 您可以使用 Java JPackage 来创建自己的 Windows 安装程序而不使用其运行应用程序的方式吗

背景,我目前将Izpack用于我的 Windows 安装程序,我捆绑了一个 java 运行时并使用winrun4j作为安装程序和安装后的实际程序的包装器。它工作了很长时间,但是安装程序存在许多我无法解决的问题,并且一直在寻找替换它。

Oracle 现在提供 JPackage 安装程序,因此这似乎是一个明智的选择。但是安装程序创建的文件夹结构与我目前拥有的不同,我有许多配置文件和非 java 文件,我无法获得 JPackage 创建的 .exe 来执行任何操作。

那么是否可以使用 JPackage 来创建安装程序,但结构更好地匹配我现有的结构,并使用继续使用 WInRun4j 来实际运行我的应用程序

现有文件夹结构

J包结构

0 投票
1 回答
555 浏览

java - 让 jpackage 在 Mac Catalina 10.15.5 上运行的问题

我正在尝试将我的 Java 应用程序捆绑到一个 .dmg 文件中。计划是签署和公证我的应用程序,以便在我的网站https://strides.co.nz上分发。

我已经下载了 Java 14 并成功地在 bash 配置文件上创建了一个路径。一些 java 命令正在终端上运行,但每当我尝试运行 jpackage 时,我都会收到“找不到命令”。

由于被 Netbeans 宠坏了,我对 mac 并不太熟悉,并且命令行知识有限。有人可以就我所缺少的东西给我一些建议。

我仍在研究为什么包不能在我的机器上运行但仍然一无所有。我看到 jpackage 存在于 bin 中,但无法使其运行。这是我在我的机器上得到的:

我曾尝试在我的 Windows PC 上运行 jpackage,并且 jpackage 正在那台机器上运行。我似乎在mac上遗漏了一些东西。

0 投票
0 回答
1183 浏览

security - OpenJDK 14:java.security.NoSuchProviderException:没有这样的提供者:静态设置时的 BC

能够通过添加以下内容来动态配置 Bouncy Castle:

但是当通过在 $JAVA_HOME/conf/security/java.security 属性文件中添加条目来静态完成时

还通过类路径添加了jar

错误是:

0 投票
2 回答
488 浏览

java - 如果已经安装,则无法重新运行 Java JPackage 安装程序,第二次只是退出而没有警告

如果已经安装,则无法重新运行JPackage安装程序,第二次似乎没有警告就退出,这是 Windows 上的正确行为吗?

你可能会问我为什么要这样做?

好吧,就我而言,我正在尝试为我的 Java 应用程序构建一个 JPackage 安装程序,所以我正在构建它来安装它,然后调整设置,重建它并尝试重新安装。我花了一些时间才发现我无法重新安装它,除非我卸载第一次安装(使用控制面板、程序和功能)

我的案例可能不是通常的用例,但它只是在没有给出任何理由的情况下退出,感觉不正确。

这也意味着,如果我向客户部署新版本,并且稍后我需要修改安装程序,而不是我必须修改版本号以让用户重新安装,这通常可能是最佳实践,但我并不特别想要如果应用程序本身没有更改,则执行此操作。

更新:自从通过查看 TaskManager 发现它仍在运行但似乎没有做任何事情并且没有向用户提供任何指示!

0 投票
0 回答
472 浏览

java - 使用 JPackage 如何在 Windows 上创建安装程序图标

我正在使用JPackage在 Windows 上安装我的 Java 应用程序,我有自己的应用程序图标,我也希望在运行安装程序时也可以使用它。

我已按照此处描述的一般方法运行 jpackage 两次,一次创建resources-dir,一次使用resources-dir

例如

但是,在这两个调用之间,我看不到任何要在创建的 target/jpackage 资源目录中修改的安装程序图标。实际上我看不到任何我可以明智地改变的东西,我很想知道人们对 Windows 安装做了什么改变。

在此处输入图像描述

0 投票
1 回答
112 浏览

java - JPackage 中的 --copyright 标志有什么作用?

--copyright该标志在JPackage中有什么作用?

我已将它包含在我的配置中,但是当我安装使用它构建的应用程序时看不到它(在 Windows 上)

0 投票
0 回答
65 浏览

java - Java 11 到 14 迁移 - 使用 Jackson 对 Optionals 进行反序列化

我们正在运行一个使用 Jackson 进行序列化的 Java 11 应用程序。到目前为止,我们还没有使用过 Jdk8Module。尽管如此,(反)序列化工作正常。Optional.empty()被序列化为'{ "value": null }'.

升级到 Java 14 后(反)序列化不再起作用,我们需要激活 Jdk8Module。

问题是:在激活 Jdk8Module 后,Jackson 除了'null'Optional.empty()但我们所有的 JSON 都包含'{ "value": null }'. 结果是 Jacksons 没有识别出该值是 anOptional.empty()并将内容传递给以异常结尾的包含类型的特定序列化程序。

我们正在寻找解决此问题的智能解决方案。

0 投票
0 回答
46 浏览

java - 如何使用 Mockito 覆盖第二次模拟对象的方法?

SQLException overrideMockedDsConnectionAction在调用case CONNECTEDafter时被抛出case DISCONNECTEDds.getConnection()当期望覆盖以前的行为时,Mockito 调用会引发异常。如何让它发挥作用?

集成测试:

0 投票
1 回答
210 浏览

java - Problems with JPackage due to different path structure between Windows and Linux

On Windows I have just converted my application installer from Izpack to JPackage and because of the structure created by JPackage I had to make some code changes to allow my application to find various config files, basically they are copied from app folder to C:\Users\Username\Appdata.... on first start (but bit more complicated than that).

I am now using JPackage on Linux, and the application copies config files from app to $HOME/.appname. However whereas on Windows app is a subfolder relative to launcher with Linux its now in ../lib/app so the code doesnt work

So I have to make some linux specific changes, but it got me wondering am I doing something very wrong here in order for me to have to make these changes ?

0 投票
1 回答
366 浏览

java - 作为 JPackage 安装的一部分,如何在 linux 中使本机 linux 应用程序可执行

我正在使用适用于 linux 的JPackage (Java 14) 打包一个 Java 应用程序(称为 Jaikoz)。

java 应用程序有时必须调用名为fpcalc64的 ac 程序,在安装时它会存储在app文件夹中,但它只有rw权限

问题 1

有没有办法在安装过程中授予它执行权限?

问题2

即使我手动进入应用程序文件夹并使用chmod 777 fpcalc64授予完全执行权限,它仍然无法运行并且我的Java程序抱怨它没有权限,即使我重新启动应用程序也会继续发生这种情况,这怎么可能?

例如

失败

但是如果我从 linux shell 运行它就可以了

问题 3

我是否必须将 fpcalc64 存储在bin文件夹而不是lib/app中。如果我这样做,我该怎么做,它是一个预编译的二进制文件?