jjzjj

WebStart

全部标签

java - 如果 JNLP url 包含 %,为什么 Java WebStart 应用程序拒绝启动?

在尝试根据传递给HTTP服务器的URL参数动态生成JNLP文件时,我注意到一件奇怪的事情。如果我的HTML代码中有类似这样的内容,它就可以工作:另一方面,如果我在launchjnlp属性中有一个%字符,插件将不会执行任何操作:没有错误消息,没有默认的Java启动画面,什么都没有,它默默地失败了。(甚至没有尝试检索JNLP文件。)这是某种安全功能吗?如果是,应该注意什么?或者这可能是一个简单的错误?更新:使用%实体代替%符号也不起作用。更新2:我尝试并未能找到关于launchjnlp属性的确切语义的任何文档,但整个标记是由deployJava.launchWebStartApplicat

java - 我必须在 Webstart 应用程序中显式调用 System.exit() 吗?

最近我将一个Swing应用程序转换为Webstart。这个过程非常简单,但我发现在我关闭所有窗口后,我的应用程序的JVM并没有终止。线程转储显示有几个非守护线程,特别是Swing的EDT、AWT和几个与websart相关的线程。实际使用的策略是每个窗口在创建时递增一个计数器,在关闭时递减一个。默认的关闭操作是DISPOSE_ON_CLOSE。当计数器达到零时,我停止所有线程池并释放所有JNI资源。当我从一个bat文件(相同的JAR)启动应用程序时,它在所有窗口关闭时正常终止,所以我认为问题与Webstart有关。现在问题:谁能告诉我到底发生了什么?为什么Webstart会留下僵尸JVM

java - 如何将 Java 9 '--permit-illegal-access' 标志传递给 Webstart 应用程序?

我通过传递--permit-illegal-access使我的应用程序在JREbuild9-ea+163上运行标记给虚拟机。现在我想用JavaWebstart启动应用程序。第一次尝试javaws-J--permit-illegal-access不起作用。我得到相同的InaccessibleObjectException与modulejava.basedoesnot"opensjava.util"tounnamedmodule就像没有旗帜一样。添加对JNLP没有帮助。Webstart是否支持--permit-illegal-access旗帜?我可以在JNLP文件中进一步指定标志吗?顺便说

java - 使 WebStart Java 桌面应用程序在 Windows 和 Mac 系统启动时启动

我开发了小型跨平台(Windows和Mac)SWT桌面应用程序。它与WebStart一起分发。到目前为止一切顺利,一切正常。我有一个新要求,要让我的应用在系统启动时启动(无需用户交互)。实现该目标的最佳方法是什么?在JNLP文件中我得到了这个:在Windows上,WebStart创建一个桌面链接[app_name].lnk并指向javaws.exe然后是一些Java缓存文件作为参数,名称很有趣,例如..\Sun\Java\Deployment\cache\6.0\4\2c0a6a781-213476。我可能可以通过名称以编程方式在用户计算机上找到该链接...呃...然后将其复制到用户的

java - 是否可以使用Java webstart执行.exe或dll?

我知道javawebstart在安全沙箱下运行。是否可以在jar中包含一个.dll/.exe(或者让webstart下载它到本地机器)然后执行它(使用Runtime.exec或进程等)请指教。欢迎任何建议/评论! 最佳答案 是的。你必须包装.dll在.jar文件,并在您的.jnlp中引用它文件使用参见here以获得更详细的描述。如果你想运行一个可执行文件,那么最好的办法是将它打包到你的.jar中。作为资源,将其展开到(比如说)一个临时目录,然后使用正常的进程/运行时机制运行它。 关于ja

java - 使用 jnlp/webstart 在 OSX 上使用 Java 7 对文件名进行编码问题

我遇到了这个问题,并且已经进行了几天不成功的搜索和解决方法尝试。我现在有一个由jnlp/webstart分发的内部javaswing程序,在osx和windows计算机上,除其他外,它从WebDav下载一些文件。最近,在装有OSX10.8和Java7的测试机上,带有重音字符的文件名和目录名开始被问号代替。在Java7之前的OSX上没有问题。例子:XXXYYY_è_ABCD/成为XXXYYY_?_ABCD/在原始字符串上使用java.text.Normalizer(NFD、NFC、NFKD、NFKC),结果不同但仍然错误:XXXYYY_e?_ABCD/或XXXYYY_e_ABCD/我从[

java - 我如何使用 Java webstart 多个依赖的 native 库?

示例:我有两个共享对象(同样适用于.dll)。第一个共享对象来自第三方库,我们称之为libA.so。我用JNI包装了其中的一些并创建了我自己的库libB.so。现在libB依赖于libA。当webstarting时,这两个库都位于某个webstart工作区。我的java代码尝试加载libB。此时系统加载器将尝试加载不在系统库路径中的libA(java.library.path对此无济于事)。最后的结果是libB有一个不满足的链接,不能使用。我试过在libB之前加载libA,但仍然无效。似乎操作系统想要为我加载。除了静态编译之外,还有什么方法可以使这项工作正常进行吗?

java - 将命令行参数传递给 javaws (Java WebStart) 可执行文件

对于那些可能不想读那么多书的人的总结:我该怎么做:?如果我们可以将临时命令行参数传递给javaws,那么javaws应用程序可能更像是“一等公民”“普通应用程序”。例如。我们可以传递要打开的文件的文件名。我想知道是否有办法将“临时”命令行参数传递给javaws可执行文件。我已经知道如何在JNLP文件中指定它们:...虽然这可以用于我想要完成的事情,但我将其视为一种解决方法。我试过了javawshttp://example.org/launch.jnlp但我认为“此处的一些CLI参数”只是被忽略了。如果我们可以将临时命令行参数传递给javaws,那么javaws应用程序可能更像是“一等公

java - Webstart 使用错误版本的 JRE 运行

我有一个需要Java7+的Javawebstart应用程序,所以JNLP有这一行:这适用于各种WindowsXP和Windows7机器(其中大多数机器也安装了Java6),但在其中一台机器上,webstart使用Java6启动但失败(JRE版本错误)。我找到了thispost并检查了Java设置,它们看起来不错:我也试过将JNLP行更改为此,但它仍然不起作用:关于如何让webstart知道JRE1.7存在的任何想法?配置:Windows7,以管理员身份运行-从IE启动webstart应用程序。 最佳答案 我发现了问题。我安装了Jav

java - 检测应用程序是否由 Webstart 启动的最佳方法是什么

正如我在recentquestion中明确指出的那样,Swing应用程序在使用SunWebstart启动程序(至少从JavaSE6开始)运行时需要显式调用System.exit()。我想尽可能地限制这种hack,我正在寻找一种可靠的方法来检测应用程序是否在Webstart下运行。现在我正在检查系统属性“webstart.version”的值是否不为null,但我在文档中找不到任何保证该属性应该由future版本/替代实现设置的保证。有没有更好的方法(最好是不依赖于webstartAPI的方法?) 最佳答案 当您的代码通过javaws