首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【错误记录】exe4j 打包程序无法设置 jar 包依赖的问题 ( 将源码 和 依赖库打包到同一个 jar 包中 )

一、问题描述 在 【错误记录】IntelliJ IDEA 导出可执行 jar 包执行报错 ( java.lang.ClassNotFoundException | 打包时没有选择依赖库 ) 博客中遇到...将上述 jar 包打包成一个 Windows 程序 , 将 Jar 包 与 Java 虚拟机打包在一起 , 捆绑成一个可执行的 exe 程序 ; 但是 exe4j 打包时 , 无法设置 jar 包的依赖库..., 只能设置一个 jar 包 ; 研究了下 exe4j 的文档 , 得到以下结论 : exe4j 打包程序无法设置 jar 包依赖 , 只能设置一个 jni 相关的 native 的 .a 静态库...但是打包的程序是一个途径界面程序 ; 这就比较尴尬了 , IntelliJ IDEA 打包出来的是一个 jar 包 + 若干 jar 依赖库 , 无法设置到 exe4j 中 ; 在 exe4j 执行时..., 导出 jar 包时 , 选择第一种方案设置 , 然后将所有的 java 源码打包在一起 ; 打包后的效果如下 , 所有的 Java 源码都打包在了一个 jar 包中 ; 注意 , 要删除 META-INF

69620

【SpringBoot】什么是Maven,以及如何配置国内源实现自动获取jar包

打好的jar包就可以引⼊到其他项⽬中, 也可以直 接使⽤这些jar包中的类和属性....具, 通过pom.xml⽂件的配置获取jar包,⽽不⽤⼿动去添加jar包 获取的jar包, 其实就是依赖 依赖配置 在之前学习JDBC的时候,我们要添加mysql-connector-java的包.并且添加到项...当我们在pom⽂件中配置完依赖之后, 点击刷新, Maven会根据坐标的配置, 去仓库⾥寻找Jar包, 并把他 下载下来, 添加到项⽬中....其中远程仓库⼜分为中央仓库, 私服 和其他公共库 2.1本地仓库 本地仓库: ⾃⼰计算机上的⼀个⽬录(⽤来存储jar包) 当项⽬中引⼊对应依赖jar包后,⾸先会查找本地仓库中是否有对应的jar包 • 如果有...本期总结了关于Maven在项目开发中的重要作用,从什么是Maven到理解它的核心功能,以及如何管理它的仓库,进行jar包坐标的配置,以及如何设置国内源都进行了详细的讲述; ~~~~最后希望与诸君共勉,共同进步

15110
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Spring Boot从零入门2_核心模块详述和开发环境搭建

    Spring Boot Starter的主要职责是将一组常见或相关的依赖项组合为单个依赖项,从而可以自动化导入全部依赖。...然后,我们需要在Maven的pom.xml文件或Gradle的build.gradle文件中添加以下最小jar依赖项 Spring core Jar file(spring-core-xx.jar) Spring...Spring Boot Starter组件将所有相关的jar组合到单个jar文件中,因此我们只需要将jar文件依赖项添加到我们的构建文件中。...当我们将spring-boot-starter-web jar文件依赖项添加到我们的构建文件中时,Spring Boot Framework将自动下载所有必需的jar并添加到我们的项目类路径中,如下图所示...Grape是嵌入Groovy的JAR依赖管理器。Grape让我们快速将maven信息库依赖项添加到我们的项目类路径中,以减少构建文件的定义。

    1.1K20

    你确定你会写 Dockerfile 吗

    重复利用 到目前为止,我们一直都在假设你的 jar 包是在主机上构建的,这还不是理想方案,因为没有充分利用容器提供的一致性环境。...例如,如果你的 Java 应用依赖于某一个特定的操作系统的库,就可能会出现问题,因为环境不一致(具体取决于构建 jar 包的机器)。...在一致的环境中从源代码构建 源代码是你构建 Docker 镜像的最终来源,Dockerfile 里面只提供了构建步骤。 ?...现在又遇到了一个新问题:跟之前直接拷贝 jar 包相比,镜像体积变得更大了,因为它包含了很多运行应用时不需要的构建依赖项。 使用多阶段构建来删除构建时的依赖项 ?...为了将构建好的 jar 包添加到最终的镜像中,可以使用 COPY --from=STAGE_NAME 指令,其中 STAGE_NAME 是上一构建阶段的名称。 ?

    64330

    你确定你会写 Dockerfile 吗?

    重复利用 到目前为止,我们一直都在假设你的 jar 包是在主机上构建的,这还不是理想方案,因为没有充分利用容器提供的一致性环境。...例如,如果你的 Java 应用依赖于某一个特定的操作系统的库,就可能会出现问题,因为环境不一致(具体取决于构建 jar 包的机器)。...1在一致的环境中从源代码构建 源代码是你构建 Docker 镜像的最终来源,Dockerfile 里面只提供了构建步骤。 ?...现在又遇到了一个新问题:跟之前直接拷贝 jar 包相比,镜像体积变得更大了,因为它包含了很多运行应用时不需要的构建依赖项。 3使用多阶段构建来删除构建时的依赖项 ?...为了将构建好的 jar 包添加到最终的镜像中,可以使用 COPY --from=STAGE_NAME 指令,其中 STAGE_NAME 是上一构建阶段的名称。 ?

    54830

    你确定会写 Dockerfile 吗?

    重复利用 到目前为止,我们一直都在假设你的 jar 包是在主机上构建的,这还不是理想方案,因为没有充分利用容器提供的一致性环境。...例如,如果你的 Java 应用依赖于某一个特定的操作系统的库,就可能会出现问题,因为环境不一致(具体取决于构建 jar 包的机器)。...1在一致的环境中从源代码构建 源代码是你构建 Docker 镜像的最终来源,Dockerfile 里面只提供了构建步骤。 ?...现在又遇到了一个新问题:跟之前直接拷贝 jar 包相比,镜像体积变得更大了,因为它包含了很多运行应用时不需要的构建依赖项。 3使用多阶段构建来删除构建时的依赖项 ?...为了将构建好的 jar 包添加到最终的镜像中,可以使用 COPY --from=STAGE_NAME 指令,其中 STAGE_NAME 是上一构建阶段的名称。 ?

    53310

    你确定你会写 Dockerfile 吗?

    重复利用 到目前为止,我们一直都在假设你的 jar 包是在主机上构建的,这还不是理想方案,因为没有充分利用容器提供的一致性环境。...例如,如果你的 Java 应用依赖于某一个特定的操作系统的库,就可能会出现问题,因为环境不一致(具体取决于构建 jar 包的机器)。...在一致的环境中从源代码构建 源代码是你构建 Docker 镜像的最终来源,Dockerfile 里面只提供了构建步骤。...现在又遇到了一个新问题:跟之前直接拷贝 jar 包相比,镜像体积变得更大了,因为它包含了很多运行应用时不需要的构建依赖项。...为了将构建好的 jar 包添加到最终的镜像中,可以使用 COPY --from=STAGE_NAME 指令,其中 STAGE_NAME 是上一构建阶段的名称。 多阶段构建是删除构建依赖的首选方案。

    48720

    SpringBoot 2.0 系列(三):流程详解(下)

    自动配置 Spring Boot自动配置尝试根据添加的jar依赖项自动配置Spring应用程序。...我们如果需要选择加入到自动配置可以通过将 @EnableAutoConfiguration或 @SpringBootApplication注释添加到我们的 @Configuration类中。...我们通常建议只将一个或另一个添加到 @Configuration 主类中。 自定义自动配置 自动配置具有良好的非侵入性。在任何时候,我们都可以开始定义自己的配置,以替换自动配置的特定部分。...Spring bean和依赖项注入 我们可以自由地使用任何标准Spring框架技术来定义bean及其注入的依赖项。...如果我们按照上面的建议构造代码(将应用程序类定位到根包中),我们可以添加@ComponentScan,而不需要任何参数。

    75330

    Java Maven POM配置参考

    默认为jar。虽然它通常表示依赖项文件名上的扩展名,但情况并非总是如此:一个类型可以映射到不同的扩展名和classifier。类型通常与所使用的packaging相对应,尽管情况并非总是如此。...runtime - 此作用域表示该依赖项不是编译所必须的,而是执行依赖项。它在运行时和测试类路径中,但不在编译类路径中。... 这只会从这个依赖项中删除指向maven-core的路径。如果maven-core在POM的其他地方作为直接或传递依赖出现,那么它仍然可以添加到classpath径中。...这种方法的好处是显而易见的。可以集中在一个中心位置设置依赖关系详细信息,并传播到所有继承的POM。 请注意,从可传递依赖项合并的工件的版本和作用域也由依赖项管理部分中的版本规范控制。...将这些属性添加到父POM时要小心,因为这可能会影响子POM或子孙POM。 dependencies: 在POM中可以看到很多依赖项,它们是所有plugins元素块下的一个元素。

    57030

    《Drools6.4 中文文档》第1章1.3(完)

    1.3.1.1 依赖和jar包 Drools被分解到几个模块中,一些需要在开发/编译过程中使用,一些需要在运行环境中使用。...在zip文件中找到插件目录和插件自身所需jar包。将插件jar包放置到Eclipse的插件目录,重启Eclipse。...Drools 运行时 Drools运行时是文件系统上的Jar包集合,它代表一个特定版本的jar Drools项目。创建一个运行时,需要通过IDE指定选择发布的版本。...1.3.1.4.4.2 为你的项目选择一个运行时 无论什么时候创建Drools项目(使用向导新建Drools项目或将转换Java项目转换为Drools项目),插件会自动的将所有jar包添加到项目的classpath...1.3.2 从源码构建 1.3.2.1 获得源码 每个Maven artifact的源码都可以通过Jboss Maven资源库中的源码jar包获得。同样的jar包也可以从下载的zip文件中获得。

    1.5K40

    sbt的依赖管理逻辑

    在软件项目开发中,依赖项管理是至关重要的一环。sbt(Simple Build Tool)作为Scala领域最常用的构建工具之一,提供了便捷的依赖项管理机制,既支持托管依赖项,也支持非托管依赖项。...非托管依赖项是指开发人员手动管理和引入项目所需的依赖项,通常是通过将依赖项的 JAR 文件放置在项目的某个目录下,或者直接引用本地文件路径来实现。...而非托管依赖项的主要优势就在于灵活,开发者可以灵活选择所需的依赖项版本,甚至可以修改源代码以适应项目的特定需求,开发者还可以针对项目的特定需求进行定制,不受限于公共仓库中已有的依赖项。...sbt的依赖冲突及解决 在sbt中,依赖冲突通常指的是当项目中存在多个依赖项,而这些依赖项又引入了相同的库但是不同的版本时所产生的问题。...sbt 将解析这些声明并确定项目所需的所有依赖项。 3 下载依赖项 一旦依赖项被确定,sbt 将会尝试从 Maven 中央仓库或者其他指定的仓库下载这些依赖项。

    17910

    Flink的类加载器

    用于从插件或用户代码 jar 加载类。 动态 ClassLoader 将应用程序类加载器作为其父级。...当运行 JobManager 和 TaskManagers 专用于一项特定作业的设置时,可以将用户代码 JAR 文件直接放入 /lib 文件夹中,以确保它们是类路径的一部分而不是动态加载。...后者意味着该库不能被添加到 Flink 的 /lib 文件夹中,而必须是应用程序的 fat-jar/uber-jar 的一部分 卸载用户代码中动态加载的类 所有涉及动态用户代码类加载(会话)的场景都依赖于再次卸载类...为了确保这些类只加载一次,您应该将驱动程序 jar 添加到 Flink 的 lib/ 文件夹中,或者通过 classloader.parent-first-patterns-additional 将驱动程序类添加到父级优先加载的类列表中...Apache Maven 提供了 maven-shade-plugin,它允许在编译后更改类的包(因此您编写的代码不受阴影影响)。

    2.3K20

    如何理解Maven与制品库相关概念?

    软件分发文件,软件包,文档包,机器学习模型以及您可以想到的任何其他类型的文件都可以成为Java世界中的工件。 Java程序中使用工件有许多不同的用途。...除了特定于应用程序的业务逻辑之外,您将需要的大多数实用程序代码已经编写并正在等待使用-您只需找到它! 好的,一旦找到包含所需代码的库(您如何做这可能是完全不同的文章),如何将其添加到程序中?...在Java中,我们可以通过下载JAR文件并将其添加到Java类路径中来将库添加到程序中。如果您使用的是集成开发环境(IDE),则GUI会指导您。...当Maven运行时,它将查看声明的依赖项列表并下载所有依赖项,包括可能隐式需要的任何依赖项,也称为“传递性依赖项”。...一旦Maven完成,您就可以运行程序(使用Maven或通过IDE),并且您的类路径将包含Maven为您下载的所有Jar。

    3.5K20

    maven 学习总结

    –mvn test:运行应用程序中的单元测试 –mvn package:依据项目生成jar文件,以备依赖此项目时使用 –mvn install:将项目的jar文件添加到库中, –mvn site:生成项目相关信息的网站...7、依赖管理 为了给项目添加一个依赖项,必须将此依赖项添加到pom.xml文件中。下次运行Maven的时候,它将从Ibiblio存储库中得到这个依赖项,并且将此依赖项添加到项目构建路径中。...我们必须使用Maven来手动将这些jar包安装到本地的存储库中。为了做个示例,我们将安装Java Activation框架的jar包。...首先我们必须从Sun的站点上下载此jar包,接着我们使用Maven将它导入本地的存储库中。您自己也可以按照 Maven上传资源指南中的指导将缺少的jar包安装到Ibiblio中。...包,所以需要将这些jar包声明为依赖项。

    1.8K50

    SpringBoot+Docker:高效容器化的最佳实践

    您可能知道 Docker 中的所有镜像都有 Linux 内核的基础层,因此我们不需要将这部分添加到我们的镜像中,因为我们的基础镜像提供了您的应用程序所需的底层内核和依赖项。...OpenJDK 是 Java 开发工具包 (JDK) 的开源实现,提供 Java 运行时环境和 Java 开发工具。...extract: 这是在 JAR 文件中传递给应用程序的参数或命令。它指示应用程序执行特定操作,在本例中是提取 JAR 文件的内容。...然后它运行mvn dependency:go-offline命令下载应用程序所需的所有依赖项。该命令确保所有必需的依赖项在本地可用,这将加快后续构建的速度。...标签是键值对,可以添加到 Docker 映像中以提供有关映像的附加信息,例如版本、维护者或构建日期。

    1.9K10

    Spring MVC 到 Spring BOOT的简化之路

    特别是需要导入大量的jar包依赖时,我们需要在网上查找各种jar包资源,各个jar间可能存在着各种依赖关系,这时候又得下载其依赖的jar包,有时候jar包间还存在着严格的版本要求,,所以当我们只是想开发一个...Hello-World的超简单的Web应用时,却把极大部分的时间在花在了编写配置文件和导入jar包依赖上,极大地影响了我们的开发效率。...正如Spring Boot的名称一样,一键启动,Spring Boot提供了自动配置功能,为我们提供了开箱即用的功能,使我们将重心放在业务逻辑的开发上。...以下屏幕截图显示了添加到我们的应用程序中的不同依赖关系: ? 任何典型的Web应用程序都会使用所有这些依赖项.Spring Boot Starter Web预先打包了这些。...mvc、data和其他框架的所有自动配置逻辑都存在与一个jar包中。

    82740

    Spring MVC 到 Spring BOOT的简化之路

    特别是需要导入大量的jar包依赖时,我们需要在网上查找各种jar包资源,各个jar间可能存在着各种依赖关系,这时候又得下载其依赖的jar包,有时候jar包间还存在着严格的版本要求,,所以当我们只是想开发一个...Hello-World的超简单的Web应用时,却把极大部分的时间在花在了编写配置文件和导入jar包依赖上,极大地影响了我们的开发效率。...正如Spring Boot的名称一样,一键启动,Spring Boot提供了自动配置功能,为我们提供了开箱即用的功能,使我们将重心放在业务逻辑的开发上。...以下屏幕截图显示了添加到我们的应用程序中的不同依赖关系: ? 任何典型的Web应用程序都会使用所有这些依赖项.Spring Boot Starter Web预先打包了这些。...mvc、data和其他框架的所有自动配置逻辑都存在与一个jar包中。

    1.6K20

    在Spring Boot项目中引入本地JAR包的步骤和配置

    最后,尽管这种方法对于特定需求非常有用,但也提到了如果需要在不同环境中部署应用程序或需要协调其他库时,建议使用更标准的依赖项管理方法。...引言: Spring Boot作为一个强大的应用程序开发框架,提供了一系列便捷工具和库,使得开发者能够更迅速地构建应用程序。然而,在开发过程中,往往需要引入第三方库或自定义功能,以满足特定的业务需求。...将JAR包复制到项目目录 首先,将需要引入的本地JAR包复制到项目目录中,例如项目的src/main/resources/lib目录下。 ☀️2....元素设置为true,以确保在依赖项解析过程中包括system作用域的依赖项。...需要注意的是,尽管这种方法在特定情况下非常有用,但如果您要在不同的环境中部署应用程序或需要与其他库进行协调,建议您仍然使用Maven官方仓库或私有仓库来管理依赖项。

    30910

    Gradle 的Dependencies

    依赖的方式 Gradle 中的依赖分别为 直接依赖,项目依赖,本地 jar 依赖 dependencies { //①.依赖当前项目下的某个模块[子工程] implementation...: 从项目的某个模块依赖另一个模块 implementation project(':subject01') 这种依赖方式是直接依赖本工程中的 libary module,这个 libary module...,编译、测试阶段代码需要依赖此类 jar 包,而运行阶段容器已经提供了相应的支持,所 以无需将这些文件打入到 war 包中了;例如 servlet-api.jar、jsp-api.jar compile...jar 包【考虑到新版本的 jar 包一般都是向下兼容的】,实际开发中,还是建议使用官方自带的这种解决方案。...即内部的所有依赖将不会添加到编译和运行时的类路径。

    1.4K20

    【Maven】——基础入门,插件安装、配置和简单使用,Maven如何设置国内源

    打好的jar包就可以引⼊到其他项⽬中, 也可以直 接使⽤这些jar包中的类和属性....⽐如前⾯学习JDBC时, 我们需要⼿动下载mysql-connector-java的包.并且添加到项⽬中 (2)添加依赖坐标 如果使⽤Maven, 我们只需要在pom.xml中引⼊mysql-connector-java...jar包 刷新完之后, 就可以在项⽬中看到新加⼊的jar包 (3)依赖传递 早期我们没有使⽤maven时, 向项⽬中添加依赖的jar包,需要把所有的jar包都复制到项⽬⼯程下....当我们在pom⽂件中配置完依赖之后, 点击刷新, Maven会根据坐标的配置, 去仓库⾥寻找Jar包, 并把他 下载下来, 添加到项⽬中....⼀个⽬录(⽤来存储jar包) 当项⽬中引⼊对应依赖jar包后,⾸先会查找本地仓库中是否有对应的jar包 如果有,则在项⽬直接引⽤ 如果没有,则去中央仓库中下载对应的jar包到本地仓库

    25310
    领券