标签: jnlp

缺少Codebase清单属性:xxx.jar

当我从jnlp启动应用程序时,我收到消息

" Missing Codebase manifest attribute for:xxx.jar"

这是什么意思?

java jnlp jar

23
推荐指数
2
解决办法
7万
查看次数

我无法使用"Java Web Start"启动JNLP应用程序?

直到最近,我才能够使用Java web startFirefox中启动/打开JNLP文件.

不知道突然发生了什么JNLP文件停止启动,出现了一个启动画面,说Java Starting ...然后没有任何反应.甚至浏览器中的Java控制台javacpl.cpl小程序也无法打开.

尝试了所有可能性:删除所有旧版本并安装了最新的JRE(java版本"1.6.0_17"),但它仍然无效.

做了一些谷歌搜索这个问题,人们建议使用-viewer选项启动javaws.exe但行为相同(启动画面显示"Java Starting ..."然后消失)

问题是我不知道任何地方(日志等)要查找导致问题的原因.

我正在使用WinXP SP3,下面的一些屏幕截图显示了有关我的系统的更多信息.如果需要,我可以提供任何其他细节,但请帮我解决这个问题.

java jnlp java-web-start

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

如何为OSX和Gatekeeper签署(动态)JNLP文件

我的公司为服务器生成Java应用程序并提供JNLP文件以启动本地应用程序.从OSX 10.8.4开始,需要使用开发者ID对JNLP文件进行签名,以保持Gatekeeper的满意度(实际上它位于最底层的发行说明中).

问题是:如何实现这一目标?AFAIK你可以签署应用程序(我们有一些使用开发者ID签名的Java应用程序) - 但JNLP - 文件只是:文件.

下一步:如何使用生成的JNLP文件执行此操作.我们必须修改它们来自服务器 - 例如属性,基本URL等等.

AFAIK Java有一定的机制可以说JNLP文件是通过它们各自的JAR文件(持有主类的文件)签署的 - 但是:Jar文件使用不同的证书进行签名,它们也不会满足Gatekeeper.

我确实找到了一个关于如何签署工具和东西的参考,但它不适用于动态文件的场景.

我不想要的答案:右键单击并打开以覆盖关守或更改系统或Java设置.这不是一个选择.

[更新]自OSX 10.9.5起,您还必须使用OSX 10.9+进行签名并拥有有效的版本2签名.怎么做?

java macos jnlp osx-gatekeeper

21
推荐指数
2
解决办法
5755
查看次数

更新到JRE7,无法加载nativelib jar,但JRE6工作正常

对于我的JNLP文件,有一些nativelib信息,如下所示:

<resources os="Windows">
    <nativelib href="lib/x264-win.jar" />
</resources>
<resources os="SunOS" arch="sparc">
    <nativelib href="lib/x264-SunOS-sparc.jar" />
</resources>
<resources os="SunOS" arch="x86">
    <nativelib href="lib/x264-SunOS-x86.jar" />
</resources>
Run Code Online (Sandbox Code Playgroud)

当我更新到JRE7时,无法加载nativelib jar,但JRE6工作正常.

加载nativelib代码如下:

String source = "x264.jar";
ClassLoader cl = Thread.currentThread().getContextClassLoader();
URL url= cl.getResource(source);
Run Code Online (Sandbox Code Playgroud)

"x264.jar"是x264-win.jar中的一个jar,lib/x264-SunOS-sparc.jar或lib/x264-SunOS-x86.jar.

当我使用JRE6加载x264.jar时,它工作正常.但是当我更新到JRE7时,它无法加载x264.jar.

当使用JRE6时,url将是"x264.jar"信息,如jar:http://test.local:8080/JNLP.jar!/x264.jar,但是使用JRE7,url将为null,我发现代码不是加载nativelib"x264.jar"

有没有人发现JRE7无法加载nativelib.jar?是使用Thread.currentThread().getContextClassLoader()加载"x264.jar"的问题?

java jnlp native

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

SHA1签名文件摘要无效

我一直在尝试验证Jar签名:

    jarsigner -verify -verbose -certs example.jar
Run Code Online (Sandbox Code Playgroud)

我遇到了以下问题:

jarsigner: java.lang.SecurityException: invalid SHA1 signature file digest for o
rg/apache/log4j/net/DefaultEvaluator.class
Run Code Online (Sandbox Code Playgroud)

我有一些关于使用的建议,-digestalg SHA-1但我不知道我应该在哪里发表这个声明!

我希望你能帮我解决问题.

jnlp

18
推荐指数
2
解决办法
4万
查看次数

"是否要运行此应用程序"JNLP对话框 - 再次显示对话框的条件

用户正在运行从浏览器启动的JNLP应用程序.JNLP启动的*.jar文件由受信任的CA颁发的证书签名.

启动jar文件时,会向用户询问是否信任签名者(不是CA - CA已经信任).

问题对话框

如果用户说"是",则将签名者的证书添加到信任存储区.

问题是:同一个对话框再次显示的条件是什么?

  • JNLP调用的*.jar文件是否已更改?
  • JNLP本身有变化吗?
  • JNLP的URL是否已更改?

即使在用户最初选中" 不再显示此项 "复选框后,其中哪些(或其他?)将触发对话框显示

java jnlp signed ria java-web-start

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

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

Java Web Start - 如何清除缓存(或从用户的角度更新应用程序)

在浏览器中下载JNLP后,它会被缓存,因此不需要再次下载,这很好.但是,因此,如果我更新JNLP使用的JAR,用户仍将看到缓存中的旧版本应用程序.

您可以通过在终端中运行它来清除缓存:

javaws -uninstall
Run Code Online (Sandbox Code Playgroud)

但很明显,当您的更新准备就绪时,用户无法运行此命令.它应该比这更无缝.

一个想法是更改jnlp文件名,以便下载新文件,如MyJWS-01.jnlp,以包含版本号.

还有其他方法吗?

java jnlp cache-control java-web-start

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

自Java 1.7.0u40以来Java WebStart应用程序的启动延迟很长

自从我们安装了Java 1.7.0u45以来,我们的WebStart应用程序显示了Windows系统启动时的一个主要延迟(我们还没有尝试过其他平台).

症状是双击桌面上的应用程序图标后,启动画面快速显示,停留一段时间(如之前所做)并关闭.在此之后我们有大约1分钟的延迟.然后,最后,应用程序窗口打开,一切都像魅力一样.

我们的应用程序在Java 1.7.0u25之前没有遇到任何问题.Java 1.7.0u40是问题出现的第一个版本.

我们的应用程序由单个(可执行)jar文件构成.最常见的部分是jar中的一些用于串行端口访问的本机类.我在这篇文章的末尾添加了jnlp文件.

我们试图找出延迟的原因是什么:

经过了Java Webstart的发行说明http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/enhancements-7.html我们的版本.

我们可以说,没有什么可以导致这种行为.我们注意到有新的Manifest条目(Permissions,Codebase,Application-Name).这些都被添加了.

看着谷歌和stackoverflow.

有些似乎有类似的问题,但我们从未见过解决方案.在许多情况下,人们在下载jar文件和重复下载时遇到问题.这似乎不是我们的问题.

使用坚韧的工具

我们想知道应用程序在上述时间内的作用.所以我们使用了sysinternals和wireshark中的进程资源管理器和进程监视器.我们发现在等待时间内,该过程尝试通过IP与'vip1.g-anycast1.cachefly.net'(205.234.175.175)和93.184.220.29进行通信.后者似乎是一个证书服务器,我真的不明白cachefly是什么东西.在这两种情况下,我们都会看到TCP syn,但没有答案,没有进一步的沟通.这两个地址都是可以ping的.

与IP-stuff无关:我们确定,应用程序没有下载,而是从缓存开始,并且我们的主要是延迟之后调用,而不是之前.

这就是我们陷入困境的地方

任何进一步的想法如何解决这个?我们是唯一经历过这种行为的人吗?

Jnlp(请注意,手动重新设置网址):

<?xml version="1.0" encoding="UTF-8"?>
<jnlp  spec="6.0+" codebase="http://53.48.16.33:8180/jenkins/job/TcuTerm%20-%20Deploy/lastSuccessfulBuild/artifact/5000_Construction/5100_Code_Base/TcuTerm/antlocal" >
    <information>
      <title>TcuTerm</title>
      <vendor>Development</vendor>
      <icon                 href="http://53.48.16.33:8180/jenkins/job/TcuTerm%20-%20Deploy/lastSuccessfulBuild/artifact/5000_Construction/5100_Code_Base/TcuTerm/src/com/x/tcu/app/term/resources/tcu.jpg"/>
      <icon kind="shortcut" href="http://53.48.16.33:8180/jenkins/job/TcuTerm%20-%20Deploy/lastSuccessfulBuild/artifact/5000_Construction/5100_Code_Base/TcuTerm/src/com/x/tcu/app/term/resources/tcu.jpg"/>
      <icon kind="splash"   href="http://53.48.16.33:8180/jenkins/job/TcuTerm%20-%20Deploy/lastSuccessfulBuild/artifact/5000_Construction/5100_Code_Base/TcuTerm/src/com/x/tcu/app/term/resources/splash.jpg"/>
      <homepage href="https://confluence.detss.corpintra.net/display/TCU/TcuTerm"/>
      <offline-allowed/>
      <shortcut>
        <desktop/>
        <menu submenu="TcuTerm"/>
      </shortcut>
    </information>
    <security>
      <all-permissions/>
    </security>
    <resources>
      <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
      <jar href="TcuTerm.jar" main="true"/>
    </resources>
    <application-desc main-class="com.x.tcu.app.term.TcuTerminal"/>
    <update check="timeout"/>
 </jnlp>
Run Code Online (Sandbox Code Playgroud)

java jnlp java-web-start

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

Java Web Start应用程序故障排除和访问日志文件

我正在启动一个突然关闭的Java Web Start应用程序.有没有人知道如何访问Java Web Start的日志.是否有任何已知原因导致其突然关闭?

java jnlp java-web-start

16
推荐指数
2
解决办法
3万
查看次数

标签 统计

jnlp ×10

java ×9

java-web-start ×6

cache-control ×1

jar ×1

macos ×1

native ×1

osx-gatekeeper ×1

ria ×1

signed ×1