exe4j使用,以及ClassNotFoundException:org.slf4j.loggerFactory

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、普通的maven+java项目打包

1.打包教程

这类项目一般是c/s项目,打包步骤如下
需求:写了一个普通的java项目,以jar包的方式打包,最后希望能够在客户电脑上以exe的方式执行

  1. maven package的jar包生成的exe无法执行
    一开始用maven的【package】打包的项目,在根目录下的target包中生成jar文件
    使用exe4j生成exe文件的步骤如下(简约到不行的版本):
    这里记得注册一下,很快的
    打开
    选择exe模式
    在这里插入图片描述exe应用的名称和生成的位置设置一下
    在这里插入图片描述执行文件也就是exe的名称设置一下,咱们这就是pbl.exe
    在这里插入图片描述然后是很重要的jar包和程序入口的设置
    在这里插入图片描述点击1处的【+】后,把jar包导入
    在这里插入图片描述
    然后点击下面的mainClass,设置程序启动的入口位置,这是自动根据你的jar包搜索的。
    假设客户机上有java环境,只需要设置一下最低的jre版本就OK了,后面都可以跳过
    在这里插入图片描述

生成exe文件。
双击执行,出现这么东西,就是说你的这个执行文件是用exe4j的试用版生成的,忘了注册了,这个注册码网上一搜就有,填了就可以了
在这里插入图片描述

但是启动出错,错误如下

在这里插入图片描述
这个问题我在网上搜了很多种解决方案,大家的重心都是log4j的依赖文件有重叠部分,但是我基本上都试过了解决方法。
之后仔细看这个异常显示的是无法找到类,所以我怀疑我的那些个jar包根本就是没有导进去,所以,我换了一种打包jar包的方法,详见俺的另一个博客【】
用这种方式打包后jar文件生成的exe就没有上面的错误了。

客户电脑上没有jre环境

这就需要你的exe文件使用自带的jre环境,就需要在上面的步骤:configure JRE中具体设置了
如下:
在这里插入图片描述把这自带的3个全都去掉
在这里插入图片描述然后添加我们自定义的jre的路径,这个路径要求你要把自己自带的jre包放在和程序的同级目录下

在这里插入图片描述在这里插入图片描述
然后下一步,选择这个就ok了,后面一路跳过
在这里插入图片描述
5. exe4j,启动失败
在window7上尝试安装了exe4j,下载后双击打开弹出错误

【无法启动此程序,因为计算机中丢失 api-ms-win-crt-runtime-l1-1-0.dll】

这是一个还蛮常见的错误的,解决方案有:
(1)重写下载一个dll文件,代替原文件(不行)
(2)安装VC redit.exe(有效!)
注意:安装之前要先删除原有的dll文件,理由是这个vc启动时会自动生成这个dll;其次,启动vc redit.exe之后,免不了要重启

但我仍不知道,安装的这是个什么玩意?

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误是由于Java程序在运行不到所需的类org.slf4j.LoggerFactory引起的。Slf4j(Simple Logging Facade for Java)是一个用于日志记录的简单门面框架,它提供了一个统一的API,让开发人员可以在应用程序中使用不同的日志库(如Log4j、Logback等)。 当我们在Java程序中使用Slf4j时,需要确保Slf4j的实现库(如slf4j-api.jar)和具体的日志库(如log4j.jar、logback.jar)都包含在应用程序的类路径中。 出现"java.lang.classnotfoundexception: org.slf4j.LoggerFactory"错误可能有以下几个原因: 1. 缺少Slf4j的实现库:确保已经将slf4j的实现库(如slf4j-api.jar)添加到应用程序的类路径中。 2. 缺少具体的日志库:如果使用的是特定的日志库(如log4j、logback),需要将相应的日志库(如log4j.jar、logback.jar)添加到类路径中。 3. 版本冲突:可能是由于不同版本的Slf4j实现库之间的冲突导致的。请检查项目依赖中的Slf4j相关库,并确保它们的版本是兼容的。 4. 配置问题:在某些情况下,Slf4j可能需要一些额外的配置才能正确运行。请检查Slf4j的配置文件,并确保它们正确地配置了日志库的路径和属性。 解决此错误的方法是根据具体情况检查以上可能的原因,并采取相应的措施来修复问题,以确保所需的Slf4j类能够到并正确加载。 ### 回答2: 这个错误是由于Java运行不到org.slf4j.LoggerFactory类而引起的。Slf4j是一个用于Java应用程序的简单日志门面,允许应用程序使用不同的日志实现(如Log4j、Logback等)。当应用程序尝试在代码中使用Slf4j时,它会在运行时尝试加载org.slf4j.LoggerFactory类来创建日志记录器,但是如果类路径中没有Slf4j库或者配置不正确,就会抛出java.lang.ClassNotFoundException异常。 解决这个问题的方法是确保在应用程序的类路径中包含正确版本的Slf4j库。可以通过在构建工具(如Maven、Gradle)的依赖项中添加Slf4j库来实现。同时,确保Slf4j的配置文件(如logback.xml)也在类路径中,并且配置文件正确地指定了日志实现的类。 另外,还需要检查应用程序的日志配置是否正确。有时候配置信息错误也会导致加载LoggerFactory类失败。确保配置文件中指定的日志实现类存在并可用于加载。 总结来说,出现此错误是因为应用程序无法Slf4jLoggerFactory类。解决方法包括添加正确版本的Slf4j库、正确配置Slf4j的配置文件和检查日志配置是否正确。 ### 回答3: 这个错误消息说明在Java程序中不到org.slf4j.LoggerFactory类。通常这是由于缺少相关的依赖库引起的。解决这个问题的方法有以下几种: 1. 确保所使用SLF4J库已正确添加到项目的classpath中。可以通过在构建配置文件或构建脚本中添加相应的依赖项来解决此问题。 2. 检查SLF4J库的版本是否与其他依赖项兼容。不同版本的库可能会引发冲突。 3. 检查SLF4J库的jar文件是否位于正确的位置。如果jar文件损坏或放错位置,可能会导致类加载失败。 4. 检查是否存在多个日志框架的依赖项。如果有多个日志框架的依赖项同时存在,可能会引发类冲突和类加载失败的问题。可以尝试移除其他不必要的日志框架依赖项。 5. 如果使用了特定版本的Java容器(如Tomcat),则需要确保该容器也正确配置了SLF4J库的依赖项。在一些容器中,可能需要手动添加依赖项或调整配置文件。 总之,以上是一些可能导致"java.lang.ClassNotFoundException: org.slf4j.LoggerFactory"错误的原因及相应的解决方法。具体解决方法应根据实际情况进行分析和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值