当前位置: 首页 > 知识库问答 >
问题:

Java Spring启动可执行JAR文件未运行到另一台计算机

衡泰
2023-03-14

我正在尝试将JavaSpringBoot(Maven)项目打包到JAR文件中。这样我就可以把这个JAR文件放到另一台计算机上,然后简单地运行它。该文件是在“目标”文件夹中创建的。我可以通过以下方式很好地运行项目:

java -jar target/project.jar

但是每当我把Jar文件放到另一个地方(比如,放到另一台PC上)并尝试这样运行时:

java -jar project.jar

它显示白标错误404页在-localhost:8080

如何将项目打包为独立的JAR文件运行而不出现任何此类错误?

这是我的申请表。属性文件内容:

spring.datasource.url=jdbc:mariadb://localhost:3306/sample
spring.datasource.username=root
spring.datasource.password=****

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MariaDB103Dialect

spring.jpa.hibernate.ddl-auto=update


## MULTIPART (MultipartProperties)
# Enable multipart uploads
spring.servlet.multipart.enabled=true
# Threshold after which files are written to disk.
spring.servlet.multipart.file-size-threshold=2KB
# Max file size.
spring.servlet.multipart.max-file-size=200MB
# Max Request Size
spring.servlet.multipart.max-request-size=215MB

## File Storage Properties
# All files uploaded through the REST API will be stored in this directory
file.upload-dir=/Users/noticepush/notices

spring.mvc.view.prefix: /WEB-INF/jsp/
spring.mvc.view.suffix: .jsp

这是我的pom。xml内容:

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.1</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.tech</groupId>
    <artifactId>StressDetection</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>
    <name>StressDetection</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>11</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.mariadb.jdbc</groupId>
            <artifactId>mariadb-java-client</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
        
        <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.2</version>
    </dependency>
        
        <dependency>
   <groupId>com.squareup.okhttp3</groupId>
   <artifactId>okhttp</artifactId>
   <version>4.4.0</version>
</dependency>
        
        <dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>3.0.0</version>
</dependency>

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

共有2个答案

微生景胜
2023-03-14

问题是,当您使用java-*。jar部署任何springboot应用程序时,jsp文件将不会出现在嵌入式tomcat中,并且在尝试为请求提供服务时,您将得到一个找不到的404页面。这是因为jar打包,jsp文件没有从WEB-INF文件夹中复制。如果在使用jar作为打包时将jsp文件保存在META-INF/resources文件夹下,它应该可以工作。

相关问题:为什么SpringBoot不支持jsp,而如果我们添加适当的jar引用,它可以呈现页面

商焕
2023-03-14

我得到这样的错误,在过去你有这个错误,因为没有德法特网页的Spring开机屏幕截图与错误

要修复它,只需在src/main/resources/statics目录中添加一个简单的html文件(index.html

 类似资料:
  • 我创建了一个应用程序,在我的计算机中,这个jar运行没有任何问题。我试着在另一台电脑上运行它,它什么都做不到。然后,我在另一台pc上尝试了同样的jar(如果你想这样看的话,是第三台),在那里,jar运行没有问题。所以我回到第二个,试着从命令行运行它,它给了我这个错误: “main”java.lang.UnsatisfiedLinkError头出现异常:无法加载库:C:\users\hectlr\l

  • 我有一个Java应用程序,它位于我编译为可执行jar文件的系统托盘中。我想在我的程序中添加添加到系统启动项的选项。 由于我不知道有什么统一的方法可以为所有操作系统做到这一点,我假设我必须为我打算支持的每个操作系统编写代码,所以我从Windows开始。 当我试图使用此处可用的代码将其添加到注册表中时,我发现在Windows 7和8下,除非我具有管理员权限(通过从提升的命令提示符运行),否则我对注册表

  • 我在Eclipse中有一个maven项目。在src/main/resources下,我有一个名为“directoryToCopy”的目录,其中包含文件。一旦我运行了我的项目,我想将“directoryToCopy”复制到桌面上的本地目录“localDirec”下。 我用了这个: 这在本地工作正常,但是当我想将其作为可执行jar文件运行时,我会得到NullPointerException。 请问有什

  • 我有一个简单的Java项目,它有一个文件输入。Java语言输入代码。java是这样的- 现在,我已经通过导出在Eclipse中创建了一个可执行的jar文件- 现在,当我尝试通过命令提示符打开它时,它工作得非常好。 但是,当我双击runnable jar文件时,我希望打开命令提示符。这里有什么问题? 谢谢

  • 我有一个使用第三方jar的Spring启动应用程序。此jar需要一个xml配置文件,该文件必须由客户端在运行时(单独)提供,并且不能预打包。第三方lib使用以下顺序加载该文件(Is和空检查): 我不能更改lib加载文件的方式(例如使用Spring的资源加载),所以它必须在类路径上。因此,我似乎失去了像java-jarmy-spring-boot-app.jar一样执行它的可能性,因为选项阻止添加任