如果你用过hudson,肯定对它的启动方式印象深刻,它既可以用 java -jar *.war来启动,也可以放到web容器中启动。
这次在项目中也用到了这种方式,在这里总结一下,
内置了jetty作为启动容器,
启动类:
import java.io.File; import java.net.URL; import java.security.ProtectionDomain; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.webapp.WebAppContext; public class CompareLuncher { public static void main(String[] args) throws Exception { String currentPath=new File("").getAbsolutePath(); //如果没有work目录,则创建,jetty默认解压路径 File work=new File(currentPath+"\\work"); if(!work.exists()){ work.mkdir(); } Server server =null; Integer port=8090; server=new Server(port); ProtectionDomain domain = CompareLuncher.class.getProtectionDomain(); URL location = domain.getCodeSource().getLocation(); WebAppContext webapp = new WebAppContext(); webapp.setContextPath("/"); webapp.setWar(location.toExternalForm()); server.setHandler(webapp); server.start(); server.join(); //启动部署包的时候可以用这个 // // Server server = new Server(8080); // // WebAppContext context = new WebAppContext(); // // context.setContextPath("/compare"); // // context.setWar("F:/compare.war"); // // server.setHandler(context); // // server.start(); // // server.join(); //eclipse 测试的时候启用如下代码,debug模式下可以直接看到修改效果 // Server server = new Server(8090); //// // ResourceHandler resourceHandler = new ResourceHandler(); // resourceHandler.setDirectoriesListed(true); // // server.setSendServerVersion(true); // server.setStopAtShutdown(true); // server.setHandler(getWebAppContext()); // server.start(); // server.join(); } private static WebAppContext getWebAppContext() { String path = CompareLuncher.class.getResource("/").getFile() .replaceAll("/target/(.*)", "") + "/src/main/webapp"; // System.out.println(path); String path2 = new File("").getAbsolutePath() + "\\src\\main\\webapp"; // System.out.println(); return new WebAppContext(path2, "/"); } }
pom:
<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>ssss</groupId>
<artifactId>pdfcompare</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>pdfcompare Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>1.8.2</version>
</dependency>
<!-- <dependency> <groupId>org.apache.axis2</groupId> <artifactId>axis2-kernel</artifactId>
<version>1.6.2</version> </dependency> -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3</version>
</dependency>
<!-- Jetty -->
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>${jettyVersion}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
<version>${jettyVersion}</version>
<scope>provided</scope>
</dependency>
<!-- the dependency can be commented if no jsp -->
<dependency>
<groupId>org.eclipse.jetty.orbit</groupId>
<artifactId>org.apache.jasper.glassfish</artifactId>
<version>2.2.2.v201112011158</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.orbit</groupId>
<artifactId>javax.el</artifactId>
<version>2.2.0.v201108011116</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<archive>
<manifest>
<mainClass>CompareLuncher</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>main-class-placement</id>
<phase>prepare-package</phase>
<configuration>
<target>
<move todir="${project.build.directory}/${project.artifactId}/">
<fileset dir="${project.build.directory}/classes/">
<include name="CompareLuncher.class" />
</fileset>
</move>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.5.1</version>
<executions>
<execution>
<id>jetty-classpath</id>
<phase>prepare-package</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<includeGroupIds>org.eclipse.jetty, org.eclipse.jetty.orbit</includeGroupIds>
<includeScope>provided</includeScope>
<!-- remove some files in order to decrease size -->
<excludes>*, about_files/*, META-INF/*</excludes>
<outputDirectory>
${project.build.directory}/${project.artifactId}
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<finalName>pdfcompare</finalName>
</build>
<properties>
<!-- <jettyVersion>7.3.0.v20110203</jettyVersion> -->
<jettyVersion>8.1.7.v20120910</jettyVersion>
</properties>
</project>
最后 在 workspace/项目名的根文件夹下执行:mvn clean install,再到target文件夹下找到 项目名称.war
用 java -jar 名字.war 即可启动
相关推荐
您可以使用 SpringBoot 创建 Java 应用程序,通过使用 Java -jar 或更传统的 war 包进行部署启动。我们还提供了一个运行 spring 脚本的命令行工具。 我们的主要目标是: 为所有 Spring 开发提供一个非常快速和广泛...
6、在命令行执行easyjweb war可以把应用发布成war包。把ejs.war文件拷到tomcat等服务器的webapp目录下也可运行。 7、如果没有装Web服务器,则可以在命令行执行easyjweb run可以自动启动内嵌的web服务器。在地址栏...
Spring Boot 2 官方指导手册译文 ...您可以使用 Spring Boot 来创建 Java 应用程序,这些应用程序可以通过使用 java -jar或更传统的 war 部署来启动。我们还提供了一个运行“spring 脚本”的命令行工具。
使用Jocky非常简单,获得jocky.jar以后,只需要运行java -jar jocky.jar就可以启动Jocky混淆编译器,jocky的命令行参数和javac完全相同,但增加了一个新的参数-scramble,它的用法如下: -scramble 混淆所有...
安装JDK、配置环境变量,编译java源文件(可以用eclipse自动编译也可以手动命令行下编译),然后命令行下运行如下命令启动服务器端: java rmi.NetS 2000 (端口号为2000) 键入如下命令启动客户端: java...
您可以使用Spring Boot创建可以使用java -jar或更传统的war部署启动的Java应用程序 。我们还提供了一个运行“spring脚本”的命令行工具。 我们的主要目标是: 为所有Spring开发提供从根本上更快且可广泛访问的入门...
**如果您无法访问HiOA网络,请参阅下载保存到glassfish \ bin \ test1.war 启动glassfish:从命令行运行“ glassfish \ bin \ asadmin” ,然后运行“ asadmin> start-domain domain1” 部署教师助手:运行
命令行启动器 vii. 22.7. Application退出 ii. 23.外化配置 i. 23.1. 配置随机值 ii. 23.2. 访问命令行属性 iii. 23.3. Application属性文件 iv. 23.4. 特定的Profile属性 v. 23.5. 属性占位符 vi. 23.6. 使用YAML...
RR-铁路图生成器 RR是语法图(也称为铁路图)的生成器。 它是一个自包含的工具,... .war文件是Java的“可执行战争”,即也可以从命令行独立启动。 在独立模式下可以执行两个不同的任务: 服务GUI,例如 java -jar
Spring Boot使开发独立的,产品级别的基于Spring的应用变得非常简单,你只...你可以使用Spring Boot创建Java应用,并使用 java -jar 启动它或采用传统的war部署方式。我们也提供了一个运行"spring 脚本"的命令行工具。
基本用法当前版本的插件支持四种类型的应用程序: 普通Java SE应用程序,定义为以下应用程序:(a)可以在常规java启动器的命令行上显式列出的所有依赖项下运行: java [-cp依赖性列表] main-class和(b)主要从以下...
启动项目:在命令行中进入项目根目录,执行以下命令启动项目: bash复制代码# 对于Tomcatcd novel-1.0.0 && mvn clean install && cd target && java -jar novel-1.0.0.war# 对于Jettycd novel-1.0.0 && mvn clean ...
我们也提供了一个运行"spring脚本"的命令行工具。 我们主要的目标是: 为所有Spring开发提供一个从根本上更快,且随处可得的入门体验。 开箱即用,但通过不采用默认设置可以快速摆脱这种方式。 提供一系列大型项目...
我们也提供了一个运行"spring脚本"的命令行工具。 我们主要的目标是: 为所有Spring开发提供一个从根本上更快,且随处可得的入门体验。 开箱即用,但通过不采用默认设置可以快速摆脱这种方式。 提供一系列大型项目...
要创建 webapp 运行: $ mvn package这会将 Web 应用程序编译并打包为.war ,它可以部署到任何 Web 服务器,例如 Tomcat。 它还构建了一个 jar 来以独立模式启动应用程序: $ java -cp "target/JavaHandler/WEB-INF...
服务器或通过在命令行中键入mvn clean install embedded-glassfish:run -Pembeddedgftest来使用 pom 中嵌入的 Glassfish 配置文件。 嵌入式 Glassfish 将尝试启动。 启动后,将 Web 浏览器指向 ...
您可以使用Spring Boot创建独立的Java应用程序,该应用程序可以使用java -jar或更传统的WAR部署来启动。 我们还提供了一个运行Spring脚本的命令行工具。 我们的主要目标是: 为所有Spring开发提供根本上更快且可...
您可以使用Spring Boot创建独立的Java应用程序,该应用程序可以使用java -jar或更传统的WAR部署来启动。 我们还提供了一个运行Spring脚本的命令行工具。 我们的主要目标是: 为所有Spring开发提供根本上更快且可...
您可以使用Spring Boot创建独立的Java应用程序,该应用程序可以使用java -jar或更传统的WAR部署来启动。 我们还提供了一个运行Spring脚本的命令行工具。 我们的主要目标是: 为所有Spring开发提供根本上更快且可...
您可以使用Spring Boot创建独立的Java应用程序,该应用程序可以使用java -jar或更传统的WAR部署来启动。 我们还提供了一个运行Spring脚本的命令行工具。 我们的主要目标是: 为所有Spring开发提供根本上更快且可...