我创建了一个简单的Hello World Swing应用程序,它可以在 Eclipse中编译和运行.我现在正在尝试将此应用程序转移到Maven包结构并将其作为Java Web-Start应用程序运行,这让我感到非常痛苦.运行“mvn clean install”后,javaws似乎加载了几秒钟然后退出.

以下是一些可供参考的内容.我(非常简单)的项目应该是完全可重现的:

包结构(来自树):

├── pom.xml
├── readme.txt
├── SwingWebstartMaven-Client
│ ├── pom.xml
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │     └── shaunabram
│ │ │ │         └── swingwebstartmaven
│ │ │ │             ├── HelloWorldSwing.class
│ │ │ │             └── HelloWorldSwing.java
│ │ │ ├── jnlp
│ │ │ │ └── template.vm
│ │ │ └── resources
│ │ └── test
│ └── target
│     ├── classes
│     │ └── com
│     │     └── shaunabram
│     │         └── swingwebstartmaven
│     │             └── HelloWorldSwing.class
│     ├── jnlp
│     │ ├── launch.jnlp
│     │ ├── lib
│     │ │ └── SwingWebstartMaven-Client-1.0.jar
│     │ └── SwingWebstartMavenExample-KeyStore
│     ├── maven-archiver
│     │ └── pom.properties
│     ├── surefire
│     ├── SwingWebstartMaven-Client-1.0.jar
│     └── SwingWebstartMaven-Client-1.0.zip
└── SwingWebstartMaven-Web
    ├── pom.xml
    ├── src
    │ ├── main
    │ │ ├── java
    │ │ ├── resources
    │ │ └── webapp
    │ │     ├── index.html
    │ │     └── WEB-INF
    │ │         └── web.xml
    │ └── test
    └── target
        ├── classes
        ├── maven-archiver
        │ └── pom.properties
        ├── surefire
        ├── SwingWebstartMaven-Web-1.0
        │ ├── index.html
        │ ├── meta-inf
        │ └── WEB-INF
        │     ├── classes
        │     └── web.xml
        └── SwingWebstartMaven-Web-1.0.war

主要pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                             http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.shaunabram.swingwebstartmaven</groupId>
    <artifactId>SwingWebstartMaven</artifactId>
    <packaging>pom</packaging>
    <version>1.0</version>
    <name>SwingWebstartMaven Project</name>

    <modules>
        <module>SwingWebstartMaven-Client</module>
        <module>SwingWebstartMaven-Web</module>
    </modules>

    <build>
        <pluginManagement>
            <plugins>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.5</source>
                        <target>1.5</target>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>tomcat-maven-plugin</artifactId>
                    <configuration>
                        <url>http://localhost:8080/manager</url>
                        <username>tomcat</username>
                        <password>tomcat</password>
                    </configuration>
                </plugin>

            </plugins>
        </pluginManagement>
    </build>

</project>

SwingWebstart-Client pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                             http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.shaunabram.swingwebstartmaven</groupId>
        <artifactId>SwingWebstartMaven</artifactId>
        <version>1.0</version>
    </parent>
    <artifactId>SwingWebstartMaven-Client</artifactId>
    <packaging>jar</packaging>
    <name>SwingWebstartMaven Client</name>

    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo.webstart</groupId>
                <artifactId>webstart-maven-plugin</artifactId>
                <version>1.0-beta-2</version>

                <executions>
                    <execution>
                        <id>package</id>
                        <phase>package</phase>
                        <goals>
                            <goal>jnlp-inline</goal>
                        </goals>
                    </execution>
                </executions>

                <configuration>
                    <jnlp>
                        <outputFile>launch.jnlp</outputFile>
                        <mainClass>com.shaunabram.swingwebstartmaven.HelloWorldSwing</mainClass>
                    </jnlp>

                    <libPath>lib</libPath>

                    <sign>
                        <keystore>SwingWebstartMavenExample-KeyStore</keystore>
                        <keypass>YourPassword</keypass>
                        <storepass>YourPassword</storepass>
                        <alias>SwingWebstartMavenExample</alias>
                        <validity>3650</validity>

                        <dnameCn>Your Name</dnameCn>
                        <dnameOu>Organizational Unit</dnameOu>
                        <dnameO>Organization</dnameO>
                        <dnameL>City or Locality</dnameL>
                        <dnameSt>State or Province</dnameSt>
                        <dnameC>US</dnameC>

                        <verify>true</verify>
                        <keystoreConfig>
                            <delete>true</delete>
                            <gen>true</gen>
                        </keystoreConfig>
                    </sign>

                    <pack200>false</pack200>
                    <gzip>true</gzip>
                    <outputJarVersions>false</outputJarVersions>
                    <verbose>true</verbose>

                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

SwingWebstartMaven-Web pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                             http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.shaunabram.swingwebstartmaven</groupId>
        <artifactId>SwingWebstartMaven</artifactId>
        <version>1.0</version>
    </parent>

    <artifactId>SwingWebstartMaven-Web</artifactId>
    <packaging>war</packaging>
    <name>SwingWebstartMaven Web</name>

    <dependencies>

    </dependencies>

</project>

HelloWorldSwing.java:

package com.shaunabram.swingwebstartmaven;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class HelloWorldSwing {
  public static void main(String[] args) {
    JFrame frame = new JFrame("HelloWorldSwing");
    final JLabel label = new JLabel("Hello World");
    frame.getContentPane().add(label);

    frame.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);
    frame.pack();
    frame.setVisible(true);
  }
}

template.vm:

<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+" codebase="http://localhost:8080/SwingWebstartMaven-Web/webstart" href="$outputFile">
 <information>
    <title>Swing Webstart Maven Project</title>
    <vendor>ShaunAbram</vendor>
 </information>
 <security>
 <all-permissions/>
 </security>
 <resources>
    <j2se version="1.5+" initial-heap-size="32m" max-heap-size="128m" />
    <property name="jnlp.versionEnabled" value="false"/>
    $dependencies
 </resources>
 <application-desc main-class="$mainClass">
 </application-desc>
</jnlp>

谢谢.

PS:我正在使用的项目来自Shaun Abram的网站上的一个例子,这里是:http://www.shaunabram.com/swing-webstart-maven-example/.它被设计为与tomcat接口并在服务器上运行但我觉得我应该能够让它在本地工作.我只是使用SwingWebstartMaven-Client分支并忽略SwingWebstartMaven-Web分支.

PPS:我觉得我应该可以重命名包结构,但由于某种原因我不能.每当我尝试用目录结构中的姓氏替换shaunabram,我的java文件和pom.xml文件中的包声明时,它会抱怨:

[ERROR]   The project com.kothur.swingwebstartmaven:SwingWebstartMaven-Client:1.0 (/media/reivei/New Volume/Project Files/SwingWebstartMaven/SwingWebstartMaven-Client/pom.xml) has 1 error
[ERROR]     Non-resolvable parent POM: Failure to find com.kothur.swingwebstartmaven:SwingWebstartMaven:pom:1.0 in http://repo.maven.apache.org/maven2 was cached in the local repository,resolution will not be reattempted until the update interval of central has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM @ line 6,column 13 -> [Help 2]

编辑:问题与这个问题相同:I am not able launch JNLP applications using “Java Web Start”?除了在Ubuntu机器上.我很难理解作者的解决方案将如何转换为Ubuntu(我尝试将JAVAWS_HOME设置为我的jre bin并重新运行javaws但它给了我同样的问题(即Java 6启动画面启动然后停止,没有程序是发现)).双击launch.jnlp在Java 7中运行它(不是我想要的)并吐出

"Error: Unable to load resource: http://localhost:8080/SwingWebstartMaven-Web/webstart/launch.jnlp."

在那之后,我尝试了其他一些事情.主要的pom.xml有tomcat插件,我没有使用它,所以我尝试删除它,它没有做任何事情.然后我尝试创建一个tomcat服务器并将项目文件夹放在/ var / lib / tomcat7 / webapps /中.这也不会改变错误.

解决方法

阅读Web Start的实际内容;它是一种读取描述符(例如,填充的template.vm)并从中下载并启动常规Java应用程序(与applet相对)的机制.如果你从命令行运行并且已经有了jar,那就多余了.如果你真的想玩它,你需要将template.vm编辑成指向本地代码库的 a valid JNLP descriptor file,然后使用javaws heet.jnlp.请参阅javaws的手册页及其包含的链接.

至于你的Maven问题,你似乎没有安装引用的父POM,因此Maven不知道从哪个继承.您需要在父POM上执行相同的更改,安装,然后处理子POM.

java – JNLP,Webstart和Maven的更多相关文章

  1. 关于maven:pom文件的使用解析

    这篇文章主要介绍了关于maven:pom文件的使用说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  2. SpringBoot Pom文件依赖及Starter启动器详细介绍

    这篇文章主要介绍了SpringBoot Pom文件的依赖与starter启动器的作用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  3. dwr实现用户管理demo

    它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。

  4. dwr+maven+jetty

    dwr快速入门:http://directwebremoting.org/dwr/introduction/getting-started.htmljetty-maven-plugin配置:http://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html一.安装并配置好maven.新建pom.xml,导入已存在工作

  5. java – 使用POM包装Agregator的Spring Boot

    是否有可能使用SpringBootsMaven插件命令spring-boot:当项目的父POM使用打包模式POM因为它的子节点时运行?

  6. java – JNLP,Webstart和Maven

    我创建了一个简单的HelloWorldSwing应用程序,它可以在Eclipse中编译和运行.我现在正在尝试将此应用程序转移到Maven包结构并将其作为JavaWeb-Start应用程序运行,这让我感到非常痛苦.运行“mvncleaninstall”后,javaws似乎加载了几秒钟然后退出.以下是一些可供参考的内容.我(非常简单)的项目应该是完全可重现的:包结构(来自树):主要pom.xml:Sw

  7. java – Gradle不包含可选的依赖项

    我有一个项目,其中apache-compress库作为编译时依赖项.该库似乎使用Maven,并且具有一个POM文件,其依赖项设置为“可选”.以下是POM文件的相关部分:Gradle似乎没有将这个库包含在我的项目中,我猜这是因为“可选”属性.有没有办法告诉Gradle包含这个依赖项而不自己明确地包含xz库?这是我的Gradle依赖声明:compilegroup:’org.apache.commons’,name:’commons-compress’,version:’1.8.1′解决方法可选依赖项不考虑传递

  8. java – 如何包含pom项目中的所有模块

    我正在寻找一种方法,从另一个pom.xml包含项目中的所有模块.所以在我的情况下,我有一个父pom,包装设置为pom.它包含3个子模块,用于在另一个api模块中实现我的接口.我想在maven中动态地包含我项目中的所有子模块.在这种情况下,我想在另一个模块中包含connector1,connector2,connector3,而不必隐式指定connector1,2,3.我尝试在我的项目中包含连接器pom,但这不起作用.我希望用pom指定父包将包含子模块,但这不起作用.有没有解决方法如何做到这一点?

  9. java – 如何从多模块maven项目中构建可执行jar?

    我是初学者,不懂很多东西.我可以构建简单的可执行jar,但是如何将multimodulemaven项目构建成可执行的jar对我而言是魔术.所以我有三个项目.家长:和两个孩子项目:和:主模块主要有main方法“类别”在“Dep”模块中定义.我应该添加到我的poms来构建可执行jar与Main类从主模块作为入口点?

  10. java – Maven,包不存在

    我有一个模块的pom文件是:在该工件(‘common’)中,我有一个名为com.mycompany.common.objects的包.在使用包中,我的pom文件是:当我运行mvninstall时,它总是抱怨:包com.mycompany.common.objects不存在.我尝试在错误所在的类中进行显式导入:没运气.我在IDE(IntelliJ)和命令行中都尝试过.任何的想法?谢谢解决方法从您的示

随机推荐

  1. 正则表达式 – 如何用OpenNLP和stringi检测句子边界?

    我想打破下一个字符串的句子:我想演示两种不同的方法.一个来自packageopenNLP:第二个来自packagestringi:在第二种方式之后,我需要准备句子以删除多余的空格,或者再次将一个新的字符串分割成句子.我可以调整字符串功能来提高结果的质量吗?当它是一个大数据时,openNLP(非常)慢,然后是字符串.有没有办法组合stringi和openNLP?

  2. coursera NLP学习笔记之week1课程介绍&amp;基础的文本处理

    |[0-9]{3}[\-\u00A0.])[0-9]{3}[\-\u00A0.][0-9]{4}+1-650-723-0293723-0293650-723-02933、单词正则化和词干化1、normalization需要正则化的项目有:信息提取indexedtext&querytermsmusthavesameform我们隐含的定义等价类的术语Weimplicitlydefineequivalenceclassesofterms一个替代方案:非对称扩张Alternative:asymmetricexpa

  3. ubuntu14.04中开始Python NLP之旅(一)

    由于此系统是去年安装的,环境是ubuntu14.04。打算将工作环境彻底换到ubuntu环境中,遂开始折腾安装环境,新手,有不对的还麻烦帮忙指出以便于改正。测试,python3.5.2安装完毕。遇到的问题实在太多了,后来才发现ubuntu中已有的python2.7,是不能删除的,于是乎又使得/usr/bin下面的python符号链接文件,重新指向/usr/bin/python2.7。

  4. 如何将jnlp与OSX停靠图标捆绑在一起;这在java首选项中似乎不再可能

    将JNLP打包为应用程序的选项似乎不存在于Oracle的JDK7Java首选项页面中,就像它在苹果中所做的那样,如here所述OSXdesktopintegrationwithJavaWebStartletsuserscreatealocalapplicationbundlefromanyJavaWebStartapplication.TheShortcutCreationsettinginJav

  5. java – JNLP,Webstart和Maven

    我创建了一个简单的HelloWorldSwing应用程序,它可以在Eclipse中编译和运行.我现在正在尝试将此应用程序转移到Maven包结构并将其作为JavaWeb-Start应用程序运行,这让我感到非常痛苦.运行“mvncleaninstall”后,javaws似乎加载了几秒钟然后退出.以下是一些可供参考的内容.我(非常简单)的项目应该是完全可重现的:包结构(来自树):主要pom.xml:Sw

  6. java – 如何使用Open nlp的分块解析器提取名词短语

    我是自然语言处理的新手,我需要从文本中提取出名词短语.我远在我使用opennlp的分块解析器来解析我的文本以获取Tree结构.但是我无法从树结构,在开放nlp中是否有任何正则表达式模式,以便我可以使用它来提取名词短语.以下是我正在使用的代码在这里我得到的输出))有些人可以帮我取得名词短语,如NP,NNP,NN等.有些人可以告诉我,我需要使用任何其他的NPChunker来获得名词短语吗?

  7. 使用JWS JNLP为JavaFX应用程序创建桌面图标

    我正在尝试为我的应用程序显示一个自定义destop图标,但由于某些原因,无论我做什么,都会显示相同的默认java图标.我已经尝试了所有我能想到的东西,并将我的jnlp文件与其图标似乎正常工作的其他人进行了比较.根据我读过的所有内容,以下内容应该可以正常工作.但当然,它没有:任何想法将不胜感激.解决方法我会按顺序尝试以下方法:>创建一个32×32大小的图标,并将其添加为附加

  8. Java jnlp应用程序被安全设置阻止

    我有一个企业级的Java应用程序,它有大量的jars,通过jnlp文件下载到客户端的jvm缓存中.当我启动应用程序时,我在Java控制台上得到以下堆栈跟踪:我的JNLP文件像以下一些审查描述:还要注意,我在更多的信息面板上获得了一些不同的例外细节:我对java控制面板的安全性没有任何安全限制.中等水平如下:感谢任何帮助新编辑:当我尝试从jvm1.6机器运行这个jnlp时,我得到了更多的说明stac

  9. JNLP应使用特定的Java版本,但会出现错误结果

    我在这里面临一个问题.我想使用特殊版本来运行我们的javawebstart应用程序,但只需要一个jnlp.(“经过测试,…blabla我们不能使用新版本…blabla”随机风袋)所以我试着像这样配置我们的JNLP:当我开始这个jnlp时,即使安装了正确的Java,我也会得到以下错误:Error:TheapplicationhasrequestedaversionoftheJRE(version1.

返回
顶部