标签: java-web-start

Java Web Start - 它适用于Android吗?

正如标题所说,通过Java Web部署/使用应用程序启动一个可行的选择?我在几年前在网上发现了一些帖子,说只有JavaME应用程序可用.

java android java-web-start

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

Java Web Start 中的版本控制

有人知道在 JNLP 文件中指定什么,以便不会一直下​​载 JARS,而只有在服务器端有新版本时才下载吗?我知道我可以指定:version="1.5" 完全是 1.5 版,或 version="1.6+" 1.6 或更高版本。

让我们以 version="1.6+" 为例。如果用户使用 1.7 版本,则不会下载 JAR,即使在服务器上 JAR 不断更新到 1.8、1.9 等等...我希望下载 JAR,但仅当服务器上有新版本时边。这能做到吗?

谢谢,特奥

jnlp java-web-start

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

Java Web Start getDocumentBase

我正在试验Java Web Start.

我刚刚写了一个基本的JApplet,在Applet类上有一个方法叫做getDocumentBase().这会将完整返回URLApplet正在运行的位置(在Tomcat下),即http:// myserver:8080/myapp/whateverapplet.jar.

但是,我正在寻找与Web启动应用程序类似的东西.我需要知道它在哪里运行.有什么东西能给我这个信息吗?

编辑

就运行的位置而言,我的意思是如果我从我想要的JNLP文件运行Web启动:

HTTP:// MYSERVER:8080/MYAPP

如果我从网络上的文件夹运行JAR我想要:

\\服务器\ MYAPP

或者,如果我从我的机器上的文件夹运行JAR,我想:

d:\ MYAPP

结束编辑

java url jnlp java-web-start

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

使用 Maven 创建一个包含 JNLP 的 jar-with-dependencies.jar 的 .war 文件

我有一个 Maven 项目,它将 Swing 客户端构建为 jar-with-dependencies.jar 文件。我想使用 Java Web Start 来分发这个 my.gui-0.1.0-jar-with-dependencies.jar 文件。为此,我创建了一个单独的 Maven 项目,该项目使用 JNLP 工件构建了一个 .war 文件。我需要在这个 .war 文件中包含 my.gui-0.1.0-jar-with-dependencies.jar。

我无法确定 jar-with-dependencies.jar 文件的 Maven 坐标。如果我将 Maven 坐标用于 GUI 项目,它会将 GUI 项目的依赖 .jar 文件放在 WEB-INF/lib 中,这不是我想要的。我需要在 .war 文件中包含 my.gui-0.1.0-jar-with-dependencies.jar 文件本身。(我想它可能在 WEB-INF/lib 中。)

我如何告诉 Maven 依赖项是 jar-with-dependencies.jar 文件本身?

如果除了告诉 Maven 包含 jar-with-dependencies.jar 本身的机制之外,还有另一种方式也可以工作。jar-with-dependencies.jar 必须位于我为支持 Java Web Start 而创建的 .war 文件中。

我知道有一个 Maven Webstart 插件,但这看起来像是一场噩梦,所以我只是自己构建一个 .war 文件,其中包含必要的 JNLP 工件。

java jnlp java-web-start maven

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

启动webstart而不下载......?

我创建了一个Java webstart应用程序,并创建了一个HTML页面,其中包含启动它的链接.问题是,在谷歌浏览器中,没有选项可以在不保存的情况下"打开"文件.我想创建一个HTML页面,可以自动启动JNLP文件,而无需保存它.或者更确切地说,没有用户必须打开他们的文件浏览器来启动它)这可能吗?

java jnlp google-chrome java-web-start

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

第 100 次下载后 Webstart Chrome

我们有一个 Java 应用程序,我们的客户可以通过 webstart 启动它。我们有一些可用性问题:

在 jnlp 文件的链接上最多点击一百次,“chrome”只是下载 jnlp 文件,以增量方式命名它:index(1).jnlp、index(2).jsp 等,然后启动应用程序。但是在下载 100 次后,当用户点击链接时,chrome 会打开一个“另存为”对话框。然后用户点击保存;chrome 询问“此文件已存在,您真的要替换它吗?” 用户说是,Chrome 下载 jnlp 等。

这个过程会产生可用性问题。为了避免它,我们开始定期更改 jnlp 文件的名称。但是当用户第一次点击新的 jnlp 链接时,chrome 会询问“这种类型的文件会损害您的计算机。您是否要保留 .......jnlp 呢?” 在下载文件之前。这创建了单击另一个按钮的另一个步骤。当然,它会吓到用户。

尽管 chrome 对这个问题的处理有问题,但 Firefox 顺利地在 100 之后继续增加文件名编号。

我们如何用 chrome 解决这个问题,而不要求用户在他们的电脑上做一些复杂的调整?

java jnlp google-chrome java-web-start

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

JavaFX从Webstart中的CSS加载图像

我目前在JavaFX中加载CSS和图像时遇到了一个主要问题.

目标是使JavaFX加载CSS文件中定义的图像.我可以在IDE和独立执行中轻松地使用它.但是,一旦我将应用程序作为applet运行并在浏览器上下文中运行,一切都会失败.

CSS文件仍然正确加载,但图像文件仍为空白.遗憾的是,我无法找到一种方法来使JavaFX记录为什么图像加载失败.所有图像都位于CSS文件位置的子目录中,例如:

.button-gray {
    -fx-border-image-source: url("button/buttongray.png");
}
Run Code Online (Sandbox Code Playgroud)

CSS文件与处理加载它的类位于同一个包中,并且加载如下:

final URL css = Util.class.getResource("sheet.css");
if (css != null) {
    parent.getStylesheets().add(css.toExternalForm());
}
Run Code Online (Sandbox Code Playgroud)

我试着已经把资源在根目录下,并加载它Util.class.getClassLoader.getResource(...)Thread.currentThread().getContextClassLoader.getResource(...).如果应用程序独立执行,两者都可以正常工作.如果从webstart applet上下文启动应用程序,则两者都不起作用.

但正如我所说.在所有情况下都没有迹象表明CSS没有加载.样式表中定义的样式将正确应用,但图像除外.

我不知道这是什么原因.我使用shemnon的gradle javafx插件打包并发布应用程序.

建筑环境:

  • Oracle Java 1.7b45 x64
  • Gradle 1.9

任何人都知道如何解决这个问题或知道如何调试它.遗憾的是,JavaFX(甚至是CSS Logger)和applet跟踪控制台的日志记录功能都没有说明问题所在.

新的消息!

JNLP文件位于: JNLP-File

但是,这个文件不是问题.问题似乎是生成二进制css文件,该文件是JavaFX for webstart部署过程的一部分.在这个二进制文件中,由于某些未知原因,通过构建环境引用了CSS文件.这会导致CSS加载程序从我的构建服务器上的位置加载图像文件.在我的本地计算机上无效的东西.另一方面,我在本地计算机上进行的构建工作因为文件仍在其寻找的位置.

所以现在问题似乎仅限于存储完全错误的文件引用的二进制css生成.

css java applet javafx java-web-start

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

是否有用于打包Java Webstart应用程序的gradle插件?

是否有一个gradle插件来打包Java Webstart(JWS)应用程序,类似于Maven webstart插件的功能?我需要至少自动执行以下任务:

  • jnlp描述符生成基于现有模板,自动添加项目依赖关系;
  • jar签名基于jnlp文件或项目依赖项上描述的文件;

java build java-web-start gradle maven-plugin

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

从 1.8_031 开始,Java WebStart 偶尔会出现 NPE

我们有一个已签名的 Java 应用程序,它通过 Java WebStart 分发给客户端,但从 1.8_031 开始,我们有时会看到 NPE。使用Java 1.8_031或更早版本,该应用程序始终有效。同一台机器有时可以运行应用程序,有时不能。清除缓存对此没有影响。

JNLP 文件如下所示:

    <?xml version="1.0" encoding="utf-8"?>

<!--
      Java Webstart JNLP File for ESKORT Clearance Workbench Application

      $Id: cwb.jnlp.template,v 1.26.2.9.2.1 2015/05/19 12:43:03 PB Exp $
-->
<jnlp codebase="http://T500-DASIM:6610/clearance" href="cwb.jnlp" spec="6.0+"> 
  <information> 
    <title>ESKORT Clearance Workbench 4.0.0.33</title>  
    <vendor>Copyright © 2014 Intrasoft International Scandinavia A/S. All rights reserved.</vendor>  
    <homepage href="http://www.intrasoft-intl.com/eskort"/>  
    <description>ESKORT Clearance Workbench 4.0.0.33</description>  
    <description kind="short">Client application for modifying the ESKORT Clearance Risk Analysis Configuration.</description>  
    <icon href="conf/ClearanceWorkbench64.jpg"/>  
    <icon href="conf/ClearanceWorkbenchSplash.jpg" kind="splash"/>  
    <related-content href="http://www.intrasoft-intl.com/eskort"/>
    <!--offline-allowed/--> …
Run Code Online (Sandbox Code Playgroud)

java jnlp nullpointerexception java-web-start

5
推荐指数
0
解决办法
459
查看次数

带有和不带有冗长选项的javaws的不同行为

我在javaws实用程序中遇到了一个相当神秘的问题,并且不知道该如何进行根本原因的调查。

这是我设法收集的信息:

$ cat /etc/os-release
ID=wrlinux
NAME=Wind River Linux
VERSION=6.0.0.17
VERSION_ID=6.0.0.17
PRETTY_NAME=Wind River Linux 6.0.0.17

$ rpm -qa | grep jdk
jdk-fonts-1.5.0-u19r0.0.lib32_x86
jdk-plugin-1.5.0-u19r0.0.lib32_x86
jdk-1.5.0-u19r0.0.lib32_x86
jdk-dev-1.5.0-u19r0.0.lib32_x86
jdk7-1.7.0-u51r2.0.lib32_x86
jdk7-plugin-1.7.0-u51r2.0.lib32_x86
jdk7-fonts-1.7.0-u51r2.0.lib32_x86
jdk7-dev-1.7.0-u51r2.0.lib32_x86

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:$HOME:/usr/lib/jvm/java-1.7.0-linux-1.7.0.51/jre/bin
Run Code Online (Sandbox Code Playgroud)

(出于机密原因,我在此处删除了部分路径)

我目前有2个版本可用,但只有1.7版本可以使用。我应该对Java版本进行升级,但是几乎到最后该错误就会出现。

首先,应按预期运行的命令如下:

$ javaws http://link_to_file.jnlp
Run Code Online (Sandbox Code Playgroud)

这是我执行的命令,下面有一些附加说明:

$ javaws http://link_to_file.jnlp
Disabling Java as it is too old and likely to be out of date. To reenable use jcontrol utility
Run Code Online (Sandbox Code Playgroud)

实际上,这不会禁用Java,并且多次执行该命令会得到相同的结果。

$ javaws -verbose  http://link_to_file.jnlp
Java(TM) Web Start 10.51.2.13-fcs Launching: /usr/lib/jvm/java-1.7.0-linux-1.7.0.51/jre/bin/java
/usr/lib/jvm/java-1.7.0-linux-1.7.0.51/jre/bin/java
 -classpath
 /usr/lib/jvm/java-1.7.0-linux-1.7.0.51/jre/lib/deploy.jar
 -Djava.security.policy=file:/usr/lib/jvm/java-1.7.0-linux-1.7.0.51/jre/lib/security/javaws.policy
 -DtrustProxy=true
 -Xverify:remote
 -Djnlpx.home=/usr/lib/jvm/java-1.7.0-linux-1.7.0.51/jre/bin …
Run Code Online (Sandbox Code Playgroud)

java jnlp symlink java-web-start verbose

5
推荐指数
0
解决办法
1016
查看次数