标签: java-web-start

使用Web Start/JNLP动态加载其他jar文件

" Web Start Developers指南"指出

必须从JNLP文件的resources部分中指定的JAR文件中检索所有应用程序资源,或者使用对Web服务器的HTTP请求显式检索所有应用程序资源.

建议在JAR文件中存储资源,因为它们将由Java Web Start缓存在本地计算机上.

现在,我有一些资源,我想在我的应用程序启动后动态加载(例如OSGi包).我可以使用普通HTTP来做到这一点,但我想利用Web Start对本地缓存和版本化/体系结构特定资源的支持.

有没有办法使用Web Start基础架构从原始代码库(在应用程序的jnlp文件中指定)下载其他jar文件?

或者:是否已经建立了集成OSGi和Web Start的方法,这将减轻我从Web Start服务器安装捆绑包的任务?

java osgi java-web-start

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

带有Tibco Native Libs的Java Webstart

我正在尝试使用Java Webstart部署一个通过TibrvJ库使用Tibrv 的本机实现的应用程序.

我已经将所有Windows dll从内部打包c:\tibco\tibrv\bin到一个Jar文件中,并将它们添加到JNLP文件中的nativelib元素中.

我希望webstart 从文件中获取dlltibco-7.5.1-nativelibs.jar文件并允许它们通过System.loadLibrary调用 来加载Tibrv.open().但是它似乎不想正常工作.

我的JNLP文件如下所示:

<?xml version="1.0" encoding="utf-8"?><!DOCTYPE jnlp PUBLIC "-//Sun Microsystems, Inc//DTD JNLP Descriptor 6.0//EN" "http://java.sun.com/dtd/JNLP-6.0.dtd">
<jnlp spec="6.0+"
 codebase="http://somewhere:8080/my-gui/application"
 href="launch.jnlp">
 <information>
  <title>My GUI</title>
  <vendor>Technology</vendor>
  <description>Dashboard</description>
  <description kind="short">Dashboard</description>
  <icon href="icon/Stocks-128x128.png" />
  <offline-allowed />
  <shortcut online="true">
   <desktop />
   <menu submenu="Dashboard" />
  </shortcut>
 </information>
 <security>
  <all-permissions />
 </security>
 <update check="always" policy="prompt-update" />
 <resources>
  <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se" …
Run Code Online (Sandbox Code Playgroud)

jnlp tibco java-web-start

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

跟踪Javaws启动

我有一个通过Java Webstart启动的Java应用程序。有时,在重新部署应用程序之后,启动该应用程序会导致每次启动都将其下载两次。我还没有深入了解这个问题,但我认为它可能与我们的鱿鱼代理有关,后者似乎与Java交互不良。为了进一步研究这个问题,我想了解一下javaws在做什么。javaws是否有可用的此类选项?

只是一个小小的更新,如果将Java配置为显示控制台,则在将焦点放在控制台上时单击“ 5”会将日志记录级别设置为5,这是最详细的日志记录级别。这可能很有用,但不能解决应用程序无法做到这一点的情况。

java jnlp java-web-start

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

Java WebStart应用程序如何获取访问我的网页的MAC地址

我正在编写一个java webstart应用程序来从网站部署,以便用户可以单击并运行我的软件.我需要一种独特的机器识别,以避免滥用文件的访问.我想使用客户端的MAC地址作为唯一密钥,以便服务器可以确保没有客户端下载太多.

当然,用户可能有多个网卡,那么我的Java应用程序如何确定用户用来访问我的网站的网卡的MAC地址?

java mac-address java-web-start web

6
推荐指数
2
解决办法
885
查看次数

Java Web Start和Safari的问题

我有一个Java webstart应用程序,完全签名,现在已经部署了一年多.由于某种原因,我们从未能够使用Safari.实际上,我无法让任何JAWS应用程序与Safari一起使用.

互联网搜索参差不齐,我似乎无法确定为什么Safari有网络启动问题.

编辑
这是Safari中Java控制台的java堆栈跟踪.请理解Java Web Start应用程序在Firefox,IE,Chrome等中没有任何问题,可以正常工作.

Java Plug-in 1.6.0_29
Using JRE version 1.6.0_29-b11 Java HotSpot(TM) Client VM
User home directory = C:\Users\strings




----------------------------------------------------
c:   clear console window
f:   finalize objects on finalization queue
g:   garbage collect
h:   display this help message
l:   dump classloader list
m:   print memory usage
o:   trigger logging
p:   reload proxy configuration
q:   hide console
r:   reload policy configuration
s:   dump system and deployment properties
t:   dump thread list
v:   dump thread stack …

java safari java-web-start

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

JNLP应使用特定的Java版本,但会出现错误结果

我在这里面临一个问题.我想使用特殊版本来运行我们的java webstart应用程序,但只需要一个jnlp.("经过测试,... blabla我们不能使用新版本... blabla"随机风袋)

所以我试着像这样配置我们的JNLP:

<resources>
    <j2se version="1.6.0_29" href="http://java.oracle.com/products/autodl/j2se"/>
    ...
</resources>
Run Code Online (Sandbox Code Playgroud)

当我开始这个jnlp时,即使安装了正确的Java,我也会得到以下错误:

错误:应用程序已请求当前未在本地安装的JRE版本(版本1.6.0_29).Java Web Start无法自动下载并安装所请求的版本.必须手动安装此JRE.

更新

JNLP文件语法中,允许使用特定的Java版本,如1.6.0_29.我甚至用1.6.0_29-b11尝试过它- 仍然是同样的错误.

也可以指定精确的产品版本(实施版本).通过包含href属性.例如,Sun Microsystems,Inc.的1.3.1_07,1.4.2或1.5.0-beta2.例如,

<j2se version ="1.4.2"href ="http://java.sun.com/products/autodl/j2se"/>

要么

<j2se version ="1.4.2_04"href ="http://java.sun.com/products/autodl/j2se"/>

编辑

给出的答案没有帮助,也没有正确的答案.

java jnlp java-web-start

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

jarsigner清单权限

如何在签名时将其他参数添加到jar的清单文件中?我有一个使用一些外部库的javaws应用程序.从java7u25开始,清单(权限和代码库)中需要其他参数.如何在签名时设置这些(如果可能的话,使用maven).我可以在构建时为我生成的工件设置它,但对于我从外部存储库获取的工具,如何在签名时插入它们?

java parameters manifest java-web-start jarsigner

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

7u45 webstart中新的死锁错误?

java 7u45的乐趣不断给予.这次是webstart中的僵局.这种情况非常一致(每次)都会启动大型应用程序(约100个罐子).

有没有其他人遇到这个或知道任何变通办法?除了恢复到1.7.0_40?

谢谢,

Found one Java-level deadlock:
=============================
"Java Web Start Main Thread":
  waiting to lock monitor 0x066368bc (object 0x29e65428, a java.lang.Class),
  which is held by "Finalizer"
"Finalizer":
  waiting to lock monitor 0x00dbc954 (object 0x2a1b52b0, a com.sun.deploy.cache.CacheEntry),
  which is held by "Java Web Start Main Thread"

Java stack information for the threads listed above:
===================================================
"Java Web Start Main Thread":
    at com.sun.deploy.cache.MemoryCache.getLoadedResource(Unknown Source)
    - waiting to lock <0x29e65428> (a java.lang.Class for com.sun.deploy.cache.MemoryCache)
    at com.sun.deploy.cache.CachedJarFile.getCacheEntry(Unknown Source)
    - locked <0x24810058> (a …
Run Code Online (Sandbox Code Playgroud)

java java-web-start

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

JNLP扩展无法在Internet Explorer中打开

我有一个使用Internet Explorer打开*.jnlp扩展的问题.该扩展程序在Chrome和Firefox中正常打开,让我相信它是IE的问题,可能还有 Web服务器/ JNLP配置.具体来说,Internet Explorer将*.jnlp文件作为*.xml脚本打开,而不是下载文件或使用java web start打开它.

例:

<?xml version="1.0" encoding="utf-8" ?>
- <!--
 JNLP File for Downtime Registration Application
  -->
- <jnlp spec="1.7+" codebase="http://foo:8080/bar" href="bar.jnlp">
- <information>
  <title>FOO</title>
  <vendor>FOO Inc.</vendor>
  <description>FOO BAR System</description>
- <shortcut online="false">
  <desktop />
  <menu submenu="FOO" />
  </shortcut>
  </information>
- <security>
  <all-permissions />
  </security>
- <resources>
  <j2se version="1.7+" java-vm-args="-client" />

  ... 

  </resources>
  <application-desc main-class="FooBarMainApp" />
  </jnlp>
Run Code Online (Sandbox Code Playgroud)

我尝试了以下"修复"/解决方法无济于事:

  • 以管理员身份运行IE
  • 将URL添加到兼容性视图
  • 将JAVA设置更改为"始终允许JNLP/MIME"
  • 重置Internet Explorer高级设置
  • 更改Web服务器的web.xml文件中的MIME扩展设置
  • 将IE设置更改为始终允许文件下载

更新: 我能够通过下面发布的解决方法解决此问题.但是,如果有人有建议,我正在寻找更永久的解决方案.具体来说,我正在寻找一种方法来解决业务/服务器端的问题,如果可能的话.如果用户不需要更改他们的任何设置(其他然后从IE切换到不同的浏览器)将是很好的.

web.xml中的MIME映射:

  <mime-mapping>
    <extension>jnlp</extension>
    <mime-type>application/x-java-jnlp-file</mime-type>
</mime-mapping>
Run Code Online (Sandbox Code Playgroud)

java jnlp internet-explorer java-web-start

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

Java webstart说我的应用程序使用自签名证书,但我使用了COMODO代码签名证书

我买了一个COMODO代码签名证书,用它来签署我的java webstart应用程序.

主要问题:Java 8甚至支持COMODO代码签名证书吗?

更多信息:

在除我自己以外的所有机器上,java会阻止应用程序,说它使用自签名证书.

我甚至不明白为什么它在我的机器上运行.我查看了java控制面板(1.8.0_45-b15)中可信认证根的列表,但我找不到那里的"COMODO RSA认证中心".

我确实在"受信任的根证书颁发机构"下的Windows MMC证书管理单元中看到该证书.但至少在其他3台机器上它并不存在.

java code-signing java-web-start code-signing-certificate

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