在JNLP文件中将当前目录指定为代码库

时间:2012-04-23 17:55:18

标签: java jnlp java-web-start

我尝试启动的Jar文件与JNLP文件位于同一目录中。 如何在codebase属性中指定该内容?

<jnlp codebase="file://" href="launch.jnlp" spec="1.0+">

3 个答案:

答案 0 :(得分:5)

以下是使用codebase的JNLP示例,设置桌面图标和启动画面     屏幕。请参阅oracle页面JNLP文件的结构和早期文档:     Java网络启动协议和API规范(JSR-56)非常彻底。

<?xml version="1.0" encoding="utf-8"?>
<!-- JNLP File for YourWebstart -->
<jnlp
 spec="1.5+"
 codebase="http://YourWebsiteurl.com/YourWeblaunchPage"
 href=”Your.jnlp">
 <information>
   <title>YourPrograms</title>
   <vendor>YourCompany</vendor>
   <description>Your application</description>
   <description kind="short">Your weblaunch description</description>
   <icon href="YourdesktopIconLogo.png"/>
   <icon kind="splash" href="YourSplashScreenImage.png"/>
   <shortcut online="true">
     <desktop/>
   </shortcut>  
  </information>
  <security>
    <all-permissions/>
  </security>
  <resources>
    <j2se version="1.6+" 
    href="http://java.sun.com/products/autodl/j2se"/>    
    <jar href="YourApplication.jar"/>
  </resources>
  <application-desc main-class="YourMainClassLocation.YourMainClass">
   <argument>AnyArgumentsYouWantToPassIntoYourApplication</argument>
 </application-desc>
</jnlp>

答案 1 :(得分:2)

基于文件的codebase在部署时不起作用,在开发过程中,可以在运行时覆盖基于Web的代码库。

要获取用于测试的基于文件的URL,请在感兴趣的目录中创建File对象,JNLP文件可能是最佳的。检查file.exists()(检查我们的假设非常重要),然后调用file.toURI().toURL()将其作为文件基URL。

另外,请务必使用JaNeLA检查JNLP。

答案 2 :(得分:1)

使用Web服务器时,标记为正确的答案是正确的,但如果您使用文件系统,则必须使用以下内容才能将当前目录用作代码库

<jnlp href="launch.jnlp" spec="1.0+">

这可以使用jdk 1.7.0_25