Tag: java web start

没有.jnlp文件的java web启动应用程序是否可以存在?

正如Java Web Start中所解释的那样,似乎有必要为Java Web Start应用程序提供.jnlp文件。 我的应用程序没有单个.jnlp文件。 我的应用程序没有main()因为它几乎在每个类中都有run() 。 有没有人可以在没有main&JNLP文件的情况下解释一下Web Start的工作原理?

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属性一样。

我是否必须在Webstart应用程序中显式调用System.exit()?

最近我将Swing应用程序转换为Webstart。 这个过程非常简单,但我发现在关闭所有窗口之后,我的应用程序的JVM没有终止。 线程转储显示有几个非守护进程线程,特别是Swing的EDT,AWT和一些websart相关的线程。 使用的实际策略是每个窗口在创建计数器时递增计数器,并在计数器关闭时递减计数器。 默认关闭操作是DISPOSE_ON_CLOSE。 温计数器达到零,我停止所有线程池并释放所有JNI资源。 当我从bat文件(相同的JAR)启动应用程序时,它在所有窗口关闭时终止,所以我认为问题与Webstart有关。 现在的问题是: 谁能告诉我究竟发生了什么? 为什么Webstart会离开僵尸JVM? 有没有办法在不停止JVM的情况下显式释放Webstart资源? 我一直认为调用System.exit()会鼓励不要释放你的资源并依赖操作系统来清理你(如果你以后重用代码可能会导致令人讨厌的意外)的草率做法……我错过了什么吗? 另请参阅用于检测Webstart是否已启动应用程序的后续问题 。

如何在没有安全警告的情况下发布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 Web Start一直要求进行身份validation

我开发了一个基于HTTP安全性的Web服务器上的Java Web Start应用程序。 一旦我登录到网页以启动我的Java Web Start应用程序,该应用程序再次要求我进行身份validation,即使我勾选“将此密码保存到密码列表”,它也会再次提示此身份validation对话框。 如果我没错,这是因为它试图访问其他jar子。 我想知道是否有办法自动定义或传递身份validation用户名和密码,以摆脱这个烦人的“function” 谢谢你的帮助

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

webstart应用程序日志记录权限被拒绝

是否可以使用java.util.Logging并登录到java webstart应用程序中的文件? 我有以下日志记录代码: Handler fh = new FileHandler(“myapp.log”); Logger.getLogger(MyApp.class.getName())addHandler操作(FH)。 并得到以下exception: java.security.AccessControlException:拒绝访问(java.util.logging.LoggingPermission控件) at java.security.AccessControlContext.checkPermission(Unknown Source) 在java.security.AccessController.checkPermission(未知来源) 在java.lang.SecurityManager.checkPermission(未知来源) 在java.util.logging.LogManager.checkAccess(未知来源) 在java.util.logging.Handler.checkAccess(未知来源) 在java.util.logging.FileHandler。(未知来源) at whoisapiclient.WhoisAPIClientApp.main(WhoisAPIClientApp.java:80) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 在java.lang.reflect.Method.invoke(未知来源) at com.sun.javaws.Launcher.executeApplication(Unknown Source) at com.sun.javaws.Launcher.executeMainClass(Unknown Source) at com.sun.javaws.Launcher.doLaunchApp(Unknown Source) 在com.sun.javaws.Launcher.run(未知来源) 在java.lang.Thread.run(未知来源)

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 ,成功。 怎么解决这个?