我正在通过JNLP和Java Web Start启动applet.我的问题是,当页面加载时,两个JVM将启动两个Java控制台弹出窗口和两个"你想运行这个应用程序吗?" 弹出窗口.除此之外,applet最终加载,甚至我的本机库都正确加载.我不确定导致双重发射的原因.
编辑:此外,第一个加载的JVM在大约30-45秒后自动关闭.
HTML
<script>
var attributes = { code:"com.osgi.swpc.applet.TrackerApplet.class", width:770, height:825};
var parameters = {jnlp_href: "tracker-applet.jnlp"};
deployJava.runApplet(attributes, parameters, "1.6");
</script>
Run Code Online (Sandbox Code Playgroud)
JNLP
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" href="">
<information>
<title>Tracker</title>
<vendor>My Vendor</vendor>
</information>
<resources os="Windows">
<!-- Application Resources -->
<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se" />
<jar href="tracker_applet.jar" main="true" />
<nativelib href="applets/jacob.jar"/>
<nativelib href="applets/com4j.jar"/>
</resources>
<applet-desc
name="Tracker Applet"
main-class="com.osgi.swpc.applet.TrackerApplet"
width="770"
height="825">
</applet-desc>
<update check="background"/>
</jnlp>
Run Code Online (Sandbox Code Playgroud) 当我将应用程序作为独立的Java程序运行时,它运行良好.当我将它作为applet运行时,它会抛出带有以下stacktrace的JAXBException.
javax.xml.bind.JAXBException: jaxb.properties in package com/test/package does not contain the javax.xml.bind.context.factory property.
at javax.xml.bind.ContextFinder.find(Unknown Source)
at javax.xml.bind.JAXBContext.newInstance(Unknown Source)
at javax.xml.bind.JAXBContext.newInstance(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
当我添加一个jaxb.properties时,我收到以下错误 -
javax.xml.bind.JAXBException
- with linked exception:
[java.lang.NoSuchMethodException: com.sun.xml.internal.ws.developer.JAXBContextFactory.createContext([Ljava.lang.Class;, java.util.Map)]
at javax.xml.bind.ContextFinder.newInstance(Unknown Source)
at javax.xml.bind.ContextFinder.newInstance(Unknown Source)
at javax.xml.bind.ContextFinder.find(Unknown Source)
at javax.xml.bind.JAXBContext.newInstance(Unknown Source)
at javax.xml.bind.JAXBContext.newInstance(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
我将以下jar添加到classpath中 -
导致此错误的原因.我错过了任何依赖项.
编辑:我在浏览器和开发环境中使用Java 7 u 59.
根据JNLP 文件语法,存在三个安全级别:
sandbox (如果没有明确指定级别,则为默认值)j2ee-application-client-permissionsall-permissions在最近的 Java 版本中,要求 JAR 文件包含一个清单条目,其 Permissions 属性与相应 JNLP 文件的安全级别相匹配。根据官方文档可能的值是
sandboxall-permissions我很困惑,因为这是否意味着实际上不再可能使用级别部署 web start 应用程序j2ee-application-client-permissions?
我无法j2ee-application-client-permissions使用清单文件中的每个可能的属性值部署具有级别的(已签名)Web 启动应用程序。
我是 Java Web Start 的新手,目前我正在为专用服务器开发的小程序上遇到一些奇怪的行为。
我正在尝试在下载之前动态检查是否忽略服务器的 SSL 证书。为此,我正在使用
public class TrustModifier {
private static SSLSocketFactory factory;
private static final HostnameVerifier TRUSTING_HOSTNAME_VERIFIER = new HostnameVerifier() {
public boolean verify(String hostname, SSLSession session) {
return true;
}
};
public TrustModifier() {
}
public static void relaxHostChecking(URLConnection conn) {
if (conn instanceof HttpsURLConnection) {
try {
HttpsURLConnection httpsConnection = (HttpsURLConnection)conn;
httpsConnection.setSSLSocketFactory(getFactory());
httpsConnection.setHostnameVerifier(TRUSTING_HOSTNAME_VERIFIER);
} catch (Exception var2) {
}
}
}
private static synchronized SSLSocketFactory getFactory() throws Exception {
if (factory == null) { …Run Code Online (Sandbox Code Playgroud) 在我的 Mac 上,我无法打开 JNLP 文件。双击它们会打开一个弹出窗口,其中包含以下消息:
\n\n\n无法完成操作\xe2\x80\x99。无法找到支持 javaws 的 Java 运行时。\n请访问http://www.java.com以获取有关安装 Java 的信息。
\n
从终端:
\n$ export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_333.jdk/Contents/Home/\n$ /usr/bin/java -version\njava version "1.8.0_333"\nJava(TM) SE Runtime Environment (build 1.8.0_333-b02)\nJava HotSpot(TM) 64-Bit Server VM (build 25.333-b02, mixed mode)\n$ /usr/bin/javaws \nThe operation couldn\xe2\x80\x99t be completed. Unable to locate a Java Runtime that supports javaws.\nPlease visit http://www.java.com for information on installing Java.\nRun Code Online (Sandbox Code Playgroud)\n我知道 Java Web Start 在 Java 9 中已被弃用,并在 Java 11 中被删除。但这是一个 Oracle JDK 8。我相信它应该提供 Java Web Start。那么发生了什么? …
好的,在您认为这是一个简单的请求之前,它必须在那里; 我做了大约2-3个小时的搜索没有结果.有没有办法通过Java Web Start(javaws)传递身份验证信息来访问受密码保护的网站?
基本上我正在努力的是一个javaws应用程序的自动重启,而不必重新实现javaws做什么来拉下jar,然后必须在下载的应用程序上运行Java.我一直在努力寻找有关这方面的信息,但没有人愿意做我正在做的事情(主要是因为如果你有身份验证,那么你会希望有人进行身份验证).
身份验证方法是基本的,我已经尝试将用户名/密码嵌入到URL中无济于事.有任何想法吗?
可编辑的源代码可在以下网址找到:http://www.splashcd.com/jtable.tar
我是这门语言的新手,所以我不确定这是否是可接受的行为.
我创建了一个JTable来为每个收到的消息显示一行(它每20秒接收一次).其中一个表列可以包含大量文本,因此我创建了一个自定义单元格渲染器,该单词渲染器相应地包装并设置行高.
所有这一切都按预期工作,除了表格显示第一行后,它每秒调用单元格渲染器大约十次......直到用户关闭表格.
一旦我在那里得到大约20行,表格变得相当迟缓,需要2-8秒来调整列的大小,向上或向下scoll,或者使用所选的背景颜色渲染选定的行.
我在渲染器中插入了一个print语句,因此我可以看到调用getTableCellRendererComponent方法的次数.
我禁用了工具提示,并禁用了所有单元格编辑.我有一个监听器,当添加新行或调整表格大小时,它会将视图滚动到最后一行.
当我刚刚查看屏幕(不接触鼠标或键盘)时,是否应该每秒调用几次getTableCellRendererComponent方法?
TIA
我们的JNLP在从Java 6切换到Java 7后仍然可以正常工作,但它现在抛出了一系列错误,如下所示:
Missing Application-Name: manifest attribute for: http://blah.com/app.jar
Missing Permissions manifest attribute for: http://blah.com/app.jar
Missing Codebase manifest attribute for: http://blah.com/app.jar
Run Code Online (Sandbox Code Playgroud)
它对我们的主罐重复几次,对我们的一个库罐重复几次.但是,对于我们的大部分库罐,它根本不会发生.JaNeLa列出了一些优化机会(通过更改一些默认值),但没有一个看起来是相关的,并且没有找到实际的错误.
到目前为止,搜索网络让我空洞如何将JNLP文件格式变成Java 7发现的值得的东西.:-)
自从更新到Java 7更新55以来,我无法运行我的WebStart java应用程序.
通过WebStart启动时,此应用程序在Java 7更新51下运行良好.
在WebStart外部启动时,它也适用于更新55.
有进一步调查的建议吗?
org.omg.CORBA.INITIALIZE: can't instantiate default ORB implementation org.jacorb.orb.ORBSingleton vmcid: 0x0 minor code: 0 completed: No
at org.omg.CORBA.ORB.create_impl_with_systemclassloader(Unknown Source)
at org.omg.CORBA.ORB.init(Unknown Source)
at org.jacorb.orb.CDRInputStream.<init>(CDRInputStream.java:186)
at org.jacorb.orb.etf.ProfileBase.initFromProfileData(ProfileBase.java:252)
at org.jacorb.orb.etf.ProfileBase.demarshal(ProfileBase.java:172)
at org.jacorb.orb.etf.FactoriesBase.demarshal_profile(FactoriesBase.java:124)
at org.jacorb.orb.ParsedIOR.decode(ParsedIOR.java:235)
at org.jacorb.orb.ParsedIOR.parse_stringified_ior(ParsedIOR.java:460)
at org.jacorb.orb.ParsedIOR.parse(ParsedIOR.java:375)
at org.jacorb.orb.ParsedIOR.<init>(ParsedIOR.java:192)
at org.jacorb.orb.ORB.string_to_object(ORB.java:1824)
Caused by: java.lang.ClassNotFoundException: org.jacorb.orb.ORBSingleton
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
... 56 more
Run Code Online (Sandbox Code Playgroud)
编辑2014年6月12日 …
我的应用程序使用20年的Java Swings开发。对于这个庞大的应用程序,我们现在在JAVA 10上进行迁移,并将在Java 11或后续版本上进行迁移。此应用程序可与Java Webstart正常运行,并且根据Java 11功能,Java 11和其他后续版本将不支持Java Web Start应用程序。
请让我知道在不使用webstart的情况下在Java 10上运行我的应用程序的最佳方法。