Tag: jnlp

JWS启动时拒绝PropertyPermission访问

我是web-start的新手,我们正在使用exe4j从One-jar创建可执行文件。 为了使我们的应用程序的“Web启动版本”我尝试使用指定的Main-Class的web启动午餐One-JAR,但我收到以下错误 – java.security.AccessControlException: access denied (java.util.PropertyPermission one-jar.main-class read) at java.security.AccessControlContext.checkPermission(Unknown Source) at java.security.AccessController.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPropertyAccess(Unknown Source) at java.lang.System.getProperty(Unknown Source) at com.simontuffs.onejar.Boot.run(Boot.java:186) at com.simontuffs.onejar.Boot.main(Boot.java:137) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.sun.javaws.Launcher.executeApplication(Unknown Source) at com.sun.javaws.Launcher.executeMainClass(Unknown Source) at com.sun.javaws.Launcher.doLaunchApp(Unknown Source) at com.sun.javaws.Launcher.run(Unknown Source) at java.lang.Thread.run(Unknown Source) […]

如何在java webstart项目中包含jar依赖项

我们正在尝试使用java webstart开发打印应用程序。 我们使用eclipse将jar创建为普通的jar文件。 我们的应用程序需要外部库来连接数据库,将数据转换为字节等。 我们之前能够通过将必要的jar放在jre文件夹的/ ext /目录中来完成此操作。 然而,这导致库与我们的tomcat服务器冲突,所以我们想避免这种方法。 我们还尝试将项目导出为可运行的jar,因为所需的库也已经打包在jar中。 但是当试图运行应用程序时,它似乎无法在jar中看到库。 我们还知道,我们可以将所需的库放在jar旁边的文件夹中,并在jnlp文件中逐个引用它们。 但是我们想避免这种方法,因为我们有很多外部jar子,我们不想一个一个地导入它们:) 所以我的问题是如何正确打包java webstart jar? 还有另一种方式吗? 什么是最好的方法? 请参阅下面的jnlp文件: PrinterWebStart robert PrinterWebStart PrinterWebStart

Java WebStart和已签名的目录

如何在java webstart .jnlp文件中指定我的一些jar子覆盖了JRE内置实现? 就像常规应用程序上支持的lib属性一样。

如何在没有安全警告的情况下发布Java Web Start jnlp应用程序?

我有一个从网站的jnlp文件启动的Java应用程序。 我试图让它运行而不会在它运行之前闪烁一堆安全警告。 该程序分为大约10个不同的jar文件,30个左右的jar库,以及jar文件中还包含的几个本机库。 我已经使用官方代码签名证书(来自Verisign)签署了所有jar文件,包含了保存主类的jar文件中的jnlp文件,并将权限和代码库属性添加到我正在使用的主要10个jar子中编译。 当我启动程序时,我收到消息说明: 此应用程序将在未来的Java安全更新中被阻止,因为JAR文件清单不包含Permissions属性。 请联系发布者以获取更多信息。 我可以单击“运行”以通过此消息,但随后我得到: 阻止可能不安全的组件运行? 该应用程序包含签名和未签名的代码。 我已将permissions属性添加到我正在编译的所有jar文件中。 我是否必须更新我正在使用的第三方库的jar清单? 如果是这样,有没有一种简单的方法可以做到这一点? 我正在使用Apache Ant来构建应用程序。

Java webstart max-heap-size导致JVM无法启动

我们在客户端使用java webstart来实现基于java swing的应用程序。 最近,当点击jnlp链接时,我们遇到了一个奇怪的“无法启动java虚拟机”错误。 我们很快发现它,因为jnlp文件中的max-heap-size设置设置为1024m,而大多数客户端PC只有1 gb物理内存。 将max-heap-size设置回512m解决了问题。 目前,jnlp文件中的相关行看起来像 我查看了jnlp规范,但找不到任何与“Java虚拟机”问题相关的内容。 从理论上讲,max-heap-size应该与初始堆大小无关。 但我们的经验表明恰恰相反。 客户环境: Windows XP SP2(32位),Internet Explorer 8.06,内存1G注意max-heap-size设置为1024m可能会导致具有2G内存的计算机出现同样的问题。 基本上,我在这里寻找的是关于为什么会发生这种情况的一些参考/规范/经验,以及除了增加物理内存大小之外是否有任何问题。 另一件事是,如果我们不指定max-heap-size,那么实际的物理内存大小是否会被用作max-heap-size,否则将使用系统默认值? 谢谢你,JasonW

javaws退出代码真的坏了吗?

我正在努力使用JNLP自动化相同的Java代码执行,我惊讶地发现jawaws没有给我一个有效的返回码。 原始执行行是: javaws -wait http://example.com:666/missing.jnlp 这确实显示了一个丑陋的窗口, “无法启动应用程序”。 信息。 你可以想象我尝试使这不需要GUI并尝试: javaws -wait -Xnosplash -import -silent http://example.com:666/missing.jnlp 但即使这个命令失败,它仍然会返回0 ,成功。 怎么解决这个?

InputStream和ByteArrayInputStream有什么区别?

以下代码摘自核心Java卷1的java Web start章节。 ByteArrayOutputStream out = new ByteArrayOutputStream(); PrintStream printOut = new PrintStream(out); printOut.print(panel.getText()); //panel.getText() return a String InputStream data = new ByteArrayInputStream(out.toByteArray()); FileSaveService service = (FileSaveService) ServiceManager .lookup(“javax.jnlp.FileSaveService”); service.saveFileDialog(“.”, new String[] { “txt” }, data, “calc.txt”); 创建了四个对象,流重定向三次。 有没有其他方法可以使用jnlp api将数据写入文件? InputStream和ByteArrayInputStream之间有什么区别?

包javax.jnlp在模块java.jnlp中声明,它不在模块图中

我有一个使用Java webstart技术的项目。 我决定将Java版本从8升级到9.但是,我在编译时面临以下错误: error: package javax.jnlp is not visible import javax.jnlp.DownloadServiceListener; ^ (package javax.jnlp is declared in module java.jnlp, which is not in the module graph) 我试图将C:\Program Files\Java\jdk-9\lib\javaws.jar在类路径中,但仍然存在同样的问题。

所有可能的值都在32位JRE和64位Jre中

我需要在Linux,Solaris和Windows上的JRE 1.6中对os.arch属性的所有可能值进行最新编译。 如果可能,请引用您的调查结果来源。 我需要这个值来选择我的JNLP文件中的资源。 基本上我需要根据JRE是32位还是64位来分配不同的JVM内存。 等待你的答复。 谢谢

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

自从我们安装了Java 1.7.0u45以来,我们的WebStart应用程序在Windows系统上显示了启动时的重大延迟(我们还没有尝试过其他平台)。 症状是双击桌面上的应用程序图标后,启动画面快速显示,停留一段时间(如之前所做)并关闭。 在此之后我们有大约1分钟的延迟。 然后,最后,应用程序窗口打开,一切都像魅力一样。 我们的应用程序在Java 1.7.0u25之前没有遇到任何问题。 Java 1.7.0u40是问题出现的第一个版本。 我们的应用程序由单个(可执行)jar文件构成。 最常见的部分是jar内部的串行端口访问的一些本机类。 我在这篇文章的末尾添加了jnlp文件。 我们试图找出延迟的原因是什么: 查看了我们版本的http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/enhancements-7.html上 的Java WebStart发行说明 。 我们可以说,没有什么可以导致这种行为。 我们注意到有新的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(请注意,手动重新设置url): TcuTerm Development