是否有与Java Web Start相当的.NET?
我希望从Web上一键式轻量级安装一组.NET程序集和资源.希望链接能够继续使用最新版本更新用户,类似于Java Web Start.
该应用程序是用F#编写的,它的价值.
Java Web Start(JWS)说它无法启动我的应用程序,因为jar文件是无符号的:
Error: Unsigned application requesting unrestricted access to system
Unsigned resource: .../dynaccn.jar
Run Code Online (Sandbox Code Playgroud)
但jar文件已签名:
$ jarsigner -keystore ... dynaccn.jar idv
$ jar tf dynaccn.jar
META-INF/MANIFEST.MF
META-INF/IDV.SF
META-INF/IDV.RSA
META-INF/
edu/
edu/ucar/
edu/ucar/unidata/
edu/ucar/unidata/dynaccn/
App$1.class
...
$ jarsigner -verbose -certs -verify dynaccn.jar
28325 Tue Aug 17 09:41:58 MDT 2010 META-INF/MANIFEST.MF
28404 Tue Aug 17 09:41:58 MDT 2010 META-INF/IDV.SF
2880 Tue Aug 17 09:41:58 MDT 2010 META-INF/IDV.RSA
0 Tue Aug 17 09:41:58 MDT 2010 META-INF/
0 Mon Aug 16 10:10:34 …Run Code Online (Sandbox Code Playgroud) 那些可能不想读那么多的人的摘要:
我想知道是否有办法将"ad-hoc"命令行参数传递给javaws可执行文件.我已经知道如何在JNLP文件中指定它们:
<application-desc main-class="org.example.ClassName">
<argument>...
Run Code Online (Sandbox Code Playgroud)
虽然这可以用于我想要完成的任务,但我将此视为一种解决方法.我试过了
javaws http://example.org/launch.jnlp <some CLI args here>
Run Code Online (Sandbox Code Playgroud)
但我认为,"这里的一些CLI args"被忽略了.
如果我们可以将ad-hoc命令行参数传递给javaws,那么javaws应用程序可能更像"一等公民""普通应用程序".例如,我们可以传递要打开的文件的文件名.比如说
javaws [options] http://example.org/launch.jnlp my_file.jpg
Run Code Online (Sandbox Code Playgroud)
在JNLP中使用硬编码的参数不满足此用例.
我们使用java Webstart在我们的Intranet上部署java应用程序.该应用程序接收频繁更新.在我们更新了Web服务器上的JAR/WAR(更改时间戳)后,用户将在一段时间内从桌面图标启动应用程序,Java Webstart将启动旧版本而不是下载新版本.
这是我们的JNLP的粘贴,因为您可以看到offline-allowed打开,但始终更新检查始终和策略.此外,下载标志是渴望.根据我的理解,这些选项应始终导致检查服务器上的时间戳和下载JAR文件的缓存.
我开始对Webstart感到沮丧!有没有人见过类似的问题?有解决方案吗 我厌倦了通过每三分之一或五次更新手动清除他们的webstart缓存来引导人们.
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE jnlp PUBLIC "-//Sun Microsystems, Inc//DTD JNLP Descriptor 6.0//EN" "http://java.sun.com/dtd/JNLP-6.0.dtd">
<jnlp spec="1.0+" codebase="$$codebase" href="$$name">
<information>
<title>TITLE</title>
<vendor>VENDOR</vendor>
<description>Our Utility Application</description>
<description kind="short">Our Utility Application PRD</description>
<icon href="images/util_icon.png" height="64" width="64"/>
<offline-allowed/>
<shortcut online="true">
<desktop />
<menu submenu="Utility Apps"/>
</shortcut>
</information>
<security>
<all-permissions />
</security>
<update check="always" policy="always" />
<resources>
<!-- requires 1.6+ -->
<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se" java-vm-args="-ea" initial-heap-size="128m" max-heap-size="512m" />
<!-- application code, download jar before we start. -->
<jar href="OurUpdatedJarName.jar" main="true" …Run Code Online (Sandbox Code Playgroud) 我无法弄清楚如何在 Java .jar文件中包含SQLite数据库以进行部署(通过Java WebStart).
数据库并没有需要在运行时更新中...它本质上是一个华而不实的配置文件.
顺便说一句,使用Eclipse.
我有一个需要Java 7+的Java webstart应用程序,所以JNLP有这一行:
<j2se version="1.7+" href="http://java.sun.com/products/autodl/j2se"/>
Run Code Online (Sandbox Code Playgroud)
这适用于各种Windows XP和Windows 7计算机(其中大多数也安装了Java 6),但在其中一台计算机上,webstart是使用Java 6启动的并且失败了(错误版本的JRE).我发现这篇文章并检查了Java设置,它们看起来很好:

我也尝试将JNLP线更改为此但仍然无效:
<j2se version="1.7+"/>
Run Code Online (Sandbox Code Playgroud)
关于如何让webstart了解JRE 1.7的任何想法?
配置:Windows 7,以管理员身份运行 - 从IE启动的webstart应用程序.
我有一个Java Web Start应用程序,我曾经通过一个快捷方式开始:
"C:\Program Files\Java\jdk1.7.0_67\bin\javaws.exe" -J-Dfile.encoding=UTF-8 -J-Xdebug -J-Xnoagent -J-Xrunjdwp:transport=dt_socket,server=n,suspend=y,address=8200" http://xxx/yyy/zzz.jnlp
Run Code Online (Sandbox Code Playgroud)
但是在安装JDK 1.8之后,它都停止了工作,我的javaw没有看到任何额外的X || D参数.我试过这种方式:
setenv JAVAWS_VM_ARGS "-Dfile.encoding=UTF-8 -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=n,suspend=y,address=8200"
"C:\Program Files\Java\jdk1.8.0_25\bin\javaws.exe" http://pont/dms/InstallDMS_debug.jnlp
Run Code Online (Sandbox Code Playgroud)
但没用.
我找到的唯一解决方案是使用Java控制面板设置params,将它们直接添加到JVM.
Control Panel > Java > Java (tab) > View (button) > Runtime parameters (field)
Run Code Online (Sandbox Code Playgroud)
如何为1.8岁的方式设置参数?
PS JDK 1.6 x32仍适用于快捷方式.x64 1.7启动但引用1.8库,所以我认为所有JDK x64都是串通的.
我是否可以使用一组参数启动Java WebStart应用程序,就像使用<param>标签配置applet一样?
谢谢
我需要动态地将参数传递给JNLP,我尝试使用扩展的servlet,JnlpDownloadServlet然后包含一个jsp,其中写入了所有JNLP XML.
但是当我调用下载的JNLP时,我得到了BadFieldException.
public class TestServlet extends JnlpDownloadServlet {
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
HttpServletRequest request = (HttpServletRequest) req;
res.setContentType("application/x-java-jnlp-file");
request.getRequestDispatcher("/jnlp.jsp").include(request, res);
}
Run Code Online (Sandbox Code Playgroud)
用于转储动态JNLP:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase=<%=request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ request.getContextPath() + "/" %> href="test.jnlp">
<information>
<title>Demo</title>
<vendor>Sun Microsystems, Inc.</vendor>
</information>
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
<jar href="lib/test.jar" main="true" />
</resources>
<application-desc name="Dynamic Tree Demo Application" main-class="org.Test" width="300" height="300">
<argument><%=request.getParameter("arg1")%></argument> …Run Code Online (Sandbox Code Playgroud) 为了保护我们的用户不受appiulet小程序的影响,我想禁用Java浏览器插件.
在测试(JRE 7)中,我注意到停用插件也会禁用Java Web Start.我们需要使用一个Web Start应用程序,因此似乎我们别无选择,只能启用浏览器插件.
这是正确的,还是有办法在不启用浏览器插件的情况下使用Web Start?
测试步骤:
在命令窗口中,我输入以下命令
出现以下错误框:

它的消息转化为
无法下载此应用程序,因为已停用Java over Internet.您可以通过Java控制面板在此系统上激活Java
我还没有看到在Java控制面板中激活"Java over Internet"的选项.当我启用浏览器插件时,可以启动Java Web Start应用程序.
如果我执行JNLP文件的本地副本,则会出现相同的错误消息
加哇人
<path to local jnlp file>
jnlp文件(略微清理):
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="https://example.com/path/to/" href="webstartapp.jnlp">
<information>
<title>...</title>
<vendor>...</vendor>
<homepage href="..." />
<description>...</description>
<description kind="short">...</description>
<description kind="tooltip">...</description>
<offline-allowed />
</information>
<security>
<all-permissions />
</security>
<resources>
<j2se version="1.7+" initial-heap-size="128m" max-heap-size="256m" />
<jar href="Client/lib/Launcher.jar" main="true" />
</resources>
<application-desc main-class="com.veda.launcher.Start">
<argument>...</argument>
<argument>*</argument>
</application-desc>
</jnlp>
Run Code Online (Sandbox Code Playgroud) java-web-start ×10
java ×9
jnlp ×4
jar ×3
applet ×2
.net ×1
code-signing ×1
command-line ×1
debugging ×1
dynamic ×1
jar-signing ×1
jvm ×1
parameters ×1
security ×1
sqlite ×1