当前位置: 首页 > 知识库问答 >
问题:

为什么JavaWebStart应用程序拒绝启动,如果JNLP url包含%?

亢奇
2023-03-14

在尝试根据传递给HTTP服务器的URL参数动态生成JNLP文件时,我注意到了一件奇怪的事情。如果我的HTML代码中有类似的内容,它会起作用:

<embed type="application/x-java-applet;" launchjnlp="dummy.jnlp"/>

另一方面,如果我在launchjnlp属性中有一个%字符,插件就不会做任何事情:

<embed type="application/x-java-applet;" launchjnlp="dummy%3f.jnlp"/>

没有错误消息,没有默认的Java启动屏幕,什么都没有,它会自动失败。(甚至没有尝试检索JNLP文件。)

这是某种安全功能吗?如果是,它应该防范什么<或者它可能是一个简单的错误?

更新:使用


共有1个答案

杜烨伟
2023-03-14

这是某种安全功能吗?如果是,它应该防范什么?或者它可能是一个简单的错误?

据我所知,“直截了当的错误”就是答案。以下是问题页面:

https://bugs.openjdk.java.net/browse/JDK-8043409

它看起来在JDK 9发布之前不会被修复。

我建议尝试不同的JDK实现,但考虑到Oracle和OpenJDK实现之间共享的代码量以及WebStart代码似乎是专有/封闭源代码的事实,这似乎不太可能改变任何事情。

因此,您使用base64编码设计的解决方案可能是目前最好的选择。如果必须经常这样做,也许可以将编码步骤应用到deployJava中。启动WebStartApplication(jnlp)JavaSript API,以便在需要时自动启动。

 类似资料:
  • 我们的webstart应用程序(不是小程序)遇到了奇怪的启动问题。 启动应用程序会显示应用程序启动屏幕,但javaws进程会在不久后终止,不会在对话框、java控制台或日志文件中显示任何错误消息。javaws似乎只是在实际启动实际应用程序之前停止。无论用户尝试从桌面快捷方式还是从网页启动应用程序,都无关紧要。当从本地计算机使用javaw运行而无需webstart时,相同的应用程序可以正常工作。 应

  • 下面是我请求的权限。 com.anddoes.launcher.permission.update_count,com.google.android.c2dm.permission.receive,com.google.android.finsky.permission.bind_get_install_referr_service,com.google.android.providers.gsf

  • 我最初的程序是为了将数据插入我的数据库。我有4个表,其中插入了数据,为了优化起见,我在一个单独的线程中这样做,因为实体是异步创建的。我正在使用consume方法将实体添加到队列中。 过了一段时间,我决定使用Spring Boot将web api添加到我的应用程序中。Spring Data JPA是需要的,因为一些POST请求将数据插入到我的数据库中。但是Spring Data JPA与我已经在使用

  • 我根据模板创建了一个应用程序,并填充了一些日志,如下所示 和 当我运行它时,我注意到有时它会启动三次。(有时,它会发射两次,有时发射一次)。 日志如下 起初,我以为是活动启动了3次,但是当我注销应用程序oncread时,它也启动了3次。我显式地放了一个静态变量,并且清楚地看到应用程序是3个不同的实例(因为变量没有在3次中递增)。 确认这不是因为配置更改或活动被终止(如中所述)https://sta

  • 最近突然出现了一个问题,只要在pubspec.yaml中包含“location”中的依赖项就可以了。 不幸的是,看颤振日志没有线索...

  • 从我的spring-boot应用程序容器连接到Rabbitmq时,我遇到了一个错误。 我在docker compose文件中附加了两个docker容器(Rabbitmq和spring-boot应用程序)和网桥网络: 当我的Spring Boot应用程序尝试连接到后者时,Rabbitmq拒绝了连接。日志下方: 当我在我的spring boot应用程序容器(在我的例子中是orchestrator)中执