精华内容
下载资源
问答
  • javajar包找不到依赖详解

    万次阅读 2018-10-09 14:49:19
    eclipse打jar包与找不到依赖包详解eclipse打工具jar1.项目右键-->export -->搜索java2....打包如下java -jar运行jar包找不到依赖包的解决方法方案1:最不推荐方案2:手动...

    [TOC]
    背景:一个工程要打成jar包,一般两种情况,要么是打成一个工具jar让别人引用,要么打成一个可执行jar包。那么不使用maven的情况下通过IDE如eclipse来打包怎么做这两件事呢.也同时介绍通过命令行打包方式

    eclipse打工具jar

    1.项目右键–>export -->搜索java

    在这里插入图片描述

    2.选择JAR file

    3.打包

    在这里插入图片描述
    这里如果直接finish就没有设置Main Class,也就是执行主类,但这样打包一般都只是打成工具包,所以一般都不需要设置MainClass

    eclipse打包可执行jar

    1.项目右键–>export -->搜索java(参考上图)

    2.选择Runnable JAR file

    3.打包如下

    在这里插入图片描述

    java命令行打包

    先打开命令提示符cmd,输入javac help,然后回车,看到:   
      用法:jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名 …   
      
      选项:
      
      -c 创建新的存档
      -t 列出存档内容的列表
      -x 展开存档中的命名的(或所有的〕文件
      -u 更新已存在的存档
      -v 生成详细输出到标准输出上
      -f 指定存档文件名
      -m 包含来自标明文件的标明信息
      -0 只存储方式;未用zip压缩格式
      -M 不产生所有项的清单(manifest〕文件
      -i 为指定的jar文件产生索引信息
      -C 改变到指定的目录,并且包含下列文件:  
      如果一个文件名是一个目录,它将被递归处理。   
      清单(manifest〕文件名和存档文件名都需要被指定,按’m’ 和 'f’标志指定的相同顺序。  
     
    可参考:https://www.cnblogs.com/mq0036/p/3885399.html

    java -jar运行jar包找不到依赖包的解决方法

    这个就是看jar包中生成的META-INF/MANIFEST.MF文件中的配置了,这个文件是打jar包时生成的,但也可以手动修改替换,必须要有。
    对于运行jar然后找不到依赖的jar包解决方案:

    方案1:最不推荐

    把依赖的jar全部放到JRE的扩展类文件夹中(%JAVA_HOME%/jre/lib/ext)

    方案2:手动添加Class-Path正确方法

    Manifest-Version: 1.0
    Class-Path: . testPackage2_lib/fastjson-1.2.38.jar
    Main-Class: com.mym.practice.testpackage.MainClass
    

    需要注意的是,

    • (1)有多个jar引用要换行写
    • (2)注意Class-Path的冒号与右边字符有空格,并且有个点“.”不能漏了,看很多文章都没有说到这个点,导致即使加了这个也没用。这个点的由来可以参考配置jdk环境变量配置classpath时是一样的

    方案3:出现这样的问题基本就是打包方式问题,检查自己的打包方式。

    方案4:换成maven工程,通过配置插件打包很便捷

    展开全文
  • 参考文章: ... 步骤1:准备主清单文件 ...由于是打包引用了第三方jar包Java项目,故需要自定义配置文件MANIFEST.MF,在该项目下建立文件MANIFEST.MF,内容如下: Manifest-Version: 1.0 Class-Path: lib/commo...

    参考文章:

    https://www.cnblogs.com/qypx520/p/5844993.html

    步骤1:准备主清单文件 “MANIFEST.MF”,

    由于是打包引用了第三方jar包的Java项目,故需要自定义配置文件MANIFEST.MF,在该项目下建立文件MANIFEST.MF,内容如下:

    Manifest-Version: 1.0
    Class-Path: lib/commons-codec.jar lib/commons-httpclient-3.1.jar lib/commons-logging-1.1.jar lib/log4j-1.2.16.jar lib/jackson-all-1.8.5.jar
    Main-Class: main.KillCheatFans

    第一行是MAINIFEST的版本,第二行Class-Path就指定了外来jar包的位置,第三行指定我们要执行的MAIN java文件。

    这里要注意几点:

    1、Class-Path: 和Main-Class: 后边都有一个空格,必须加上,否则会打包失败,错误提示为:Invalid header field;
    2、假设我们的项目打包后为KillCheatFans.jar,那么按照上面的定义,应该在 KillCheatFans.jar的同层目录下建立一个lib文件夹(即lib文件和打包的jar文件
    在同一个目录下),并将相关的jar包放在里面。否则将会出现“Exception in thread "main" java.lang.NoClassDefFoundError”的错误;
    3、Main-Class后面是类的全地址,比如你的主文件是KillCheatFans.java,文件里打包为package com.main; 那么这里就写com.main.KillCheatFans,
    不要加.java后缀,主文件地址写错将会出现“找不到或无法加载主类”的错误;
    4、写完Main-Class后一定要回车(即最后一行是空白行),让光标到下一行,这样你生成的jar包才能找到你的主class去运行,
    否则将会出现“jar中没有主清单属性”的错误。

    重点来了,Class-Path: lib/commons-codec.jar ..... 等等这些jar包,还需要与java项目打成jar包放在同级目录下,才可以运行

    如下图:我将java项目打包成BigFile.jar; 那我这个java项目引用的所有 jar 包应该放在libs文件夹中,在用命令来运行,才会生效

    注意:Class-Path: lib/commons-codec.jar 中的lib 是可以改的,比如改成我的libs都是可以的

    这样就可以大功告成了

    展开全文
  • 需要调用服务器接口,于是自己写了个servlet想着来给android发送数据,其中引用一个JSONObject这个类,于是在之前的项目拷贝一个jar包到这个项目,编译和启动都没有问题,但是访问地址的时候一直提示java ...
    最近要做一个android APP,需要调用服务器接口,于是自己写了个servlet想着来给android发送数据,其中引用到一个JSONObject这个类,于是在之前的项目里拷贝一个jar包到这个项目里,编译和启动都没有问题,但是访问地址的时候一直提示
    

    java ClassNotFoundException ,而且报错的地方就在JSONObject这个类下面,去百度上搜了一下,都说去web-inf/lib 下看下,tomocat部署的时候不会把jar加进去,但是明明有的啊,各种尝试没有办法.

     我去JSONObject这个类下面看import的都有哪些类,发现有些类不是在这个jar包里的,于是搜了下引用JSONObject需要用到哪些jar包,发现需要

    commons-beanutils-1.7.0.jar

    commons-collections-3.1.jar

    commons-lang-2.5.jar

    commons-logging.jar

    ezmorph-1.0.3.jar

    json-lib-2.1-jdk15.jar  这6个jar包,然后把其他五个jar包都引进来就可以正常访问啦.

    展开全文
  •  用cmd命令验证自己打的包是否可运行时,经常会遇到依赖的jar包找不到,无法加载主类等 常见错误解决如下: 打出的jar包 目录格式如下: bin //该目录存放编译后的class文件 lib //所依赖的第三方jar(将自己...

    1.使用eclipse 导出可运行jar包之后

        用cmd命令验证自己打的包是否可运行时,经常会遇到依赖的jar包找不到,无法加载主类等

    常见错误解决如下:

    打出的jar包 目录格式如下:

    bin  //该目录存放编译后的class文件

    lib  //所依赖的第三方jar(将自己打出的jar包也放到此位置)

    *.properties //相关的配置文件 放到bin目录下也可以,执行看是否报错

     

     

    1)linux 下 :#!/bin/sh
                          export JAVA_HOME=/data/jdk                   //  设置环境变量也可以不用设置,前期你的机器已经配置好了环境变量
                          export CLASSPATH=.                     
                         echo $CLASSPATH                     
                         for file in lib/*; do                                                    // 
                          export CLASSPATH=$CLASSPATH:$file           //   找到你依赖的第三方jar所在的文件夹 设置路径              
                         done                                                                     //
                         export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar                     
                         export PATH=$JAVA_HOME/bin:$PATH                     
                         java -classpath $CLASSPATH: com.grid.Main                   // 执行 Main class

    2)windows 下:java  -Djava.ext.dirs=.\lib\ -cp .\bin\ com.grid.Main       //找到依赖的第三方jar存放的目录lib   执行你的Main方法

       

    展开全文
  • 本来是很简单的问题,但是因为这个jar包不是可执行的jar包(没有main方法入口),jar反编译之后又是能通过idea重新打包,因为jar是混乱的 所以费了点时间,在此记录下 解决思路 反编译jar包 首先用一些反编译工具...
  • )得到项目根目录后再找到相应资源文件,但将改工程打包为jar包后,运行该jar时,显示找不到资源文件的错误。 如何解决? 方式一:使用Class.getResource String s1 = this.getClass().getResource("/librar....
  • 转自:... 使用maven管理后,依然报错,找不到,比如如下错误  java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener  方法如下  1) Open
  • 上篇文章说过配置文件读取的公用方法,但是目前工程打成jar包后,直接用jdk执行发现系统找不到配置文件路径,意识到这种读取配置文件的方式可能存在一定的局限性,因此搜索一些资料对配置文件读取方式作出如下修改。...
  • java 启动jar包 报错找不到主启动类

    千次阅读 2019-11-12 10:11:10
    springboot + maven 打包成jar包后,使用java jar命令启动jar包时,报错:Could not find or load main class org.springframework.boot.loader.JarLauncher 问题解决         需要在...
  • Web工程,部署在linux系统weblogic目录下, 所有jar包都在lib... ,然后运行时jvm却找不到这个类,NoClassDefFoundError,但这个类明明在jar包里面存在 是怎么回事,是打包时要注意什么吗,我用eclipse打的
  • d-gui这个工具可以进行反编译的操作。 不过反编译的质量随着混淆的程度而定。 特别复杂的代码(如加密算法)反编译一般都有问题。 可以建议用 javap -c -p 来看字节码。然后参考jvm指令。 总结: ...
  • 浏览器上报错404路径找不到,这里报404是因为所引的jar包没有找到 解决了很长时间,纠结的淡疼,刚开始自学,初学者勿喷,哈哈。还是没有经验解决办法 1. 首先确认下那个jar里有FileItemFactory这个类不
  • 第一次用java 做 web 项目,遇到个奇怪的问题,引入了jar ,但是还是找不到对应的class 解决办法: 右键项目 选 p'roperties deployment assembly add jar包
  • Java获取jar下面的所有class文件

    千次阅读 2018-07-23 22:34:05
    import java.io.File; import java.io.IOException; import java.net.JarURLConnection; import java.net.URL;...import java.net.URLDecoder;...import java.util.jar.JarEntry; import java.u...
  • Java mven项目打包成jar运行propperties 文件报空指针 InputStream in = ReadData.class.getClassLoader().getResourceAsStream("path.properties");
  • 由于是打包引用了第三方jar包Java项目,故需要自定义配置文件MANIFEST.MF,在该项目下建立文件MANIFEST.MF,内容如下: Manifest-Version: 1.0 Class-Path: lib/jna-3.0.9.jar Main-Class: com.sitech...
  • 遇到一个很坑的问题,在开发环境下使用File读取文件正常执行,但是在生产环境(jar支持File形式读取文件,因此我们需要使用ClassPathResource来读取,这里我们使用的是spring的接口。 使用起来就像这样: ...
  • Java 运行jar程序1. java -jar .jar 或者 javaw -jar .jar2. 更改注册表信息2.4 修改2.5 过程总结3. jar 中的 MANIFEST.MF 文件 1. java -jar .jar 或者 javaw -jar .jar 这两个方法具体的区别见另一篇博客java ...
  • 在ide中程序可以正常运行,当我使用 gradle 构建后,利用 java -jar 命令启动时,找不到class文件。 探因 ide能运行,jar不能正常运行肯定是构建过程中的问题了。打开 kotlin.jar 文件后,发现里面的确没有由 ja...
  • 在Linux虚拟机系统执行jar包的过程中,经常会出现类似ClassNotFound等类似的错误,无法完成jar包的运行,根据经验,总结几点如下,便于自己记忆,后期查看,仅供参考。 1.主要原因:大多数是因为出现jar包冲突,...
  • 以前都是在eclipse调试,第一次打包出来,依赖jre的地方都能正常运行,但是依赖第三方包的地方就提示找不到依赖。导出的jar解压发现的确没有依赖,classpath文件有表明依赖路径,都是在本机,却无法运行。请问...
  • 我是参照 ...打包成JAR的 但是一直提示找不到或无法加载主类。我的类是不包含package的 可以正常运行程序,java App也正常,甚至把jar解压出来在java App也没问题 就是java -jar javaspark.jar提示错误
  • java.lang.ClassNotFoundException(MyEclipse引入jar包找不到类的解决)
  • 试一下:在web-inf文件夹下新建lib文件夹:将所有需要用到的jar包放在lib中,重启tomcat。 转载于:https://www.cnblogs.com/zwhblog/p/6061112.html
  • springboot项目打包成的jar在命令行运行时提示找不到主类和没有主清单属性 这个原因是:使用压缩工具打开jar,找到META-INF 打开MANIFEST.MF 里面内容:看看是不是比下面这个缺少Start-Class和Main-Class这个...
  • 新建的java工程,导入jar包后,查看jar包,只显示路径,而里面class文件夹不见了。![图片说明](https://img-ask.csdn.net/upload/201610/12/1476261400_296273.png)
  • 运行Jar文件找不到mainclass

    千次阅读 2017-10-21 11:28:41
    如果jar包确定没有错误的话,则是注册表有问题。 1、卸载jdk 2、卸载后,重新安装之前访问注册表,删除如下信息在点击开始--》运行-》输入regedit确定打开注册表。  找到HKEY_LOCAL_MACHINE/software/javasoft...
  • 考虑 java 自带的 ClassLoader 无法灵活的添加某路径下的类,考虑以下三种方式实现: AppClassLoader 继承自 URLClassLoader,以反射的方式将 addURL 方法设置为 public,以添加自定义路径为 cla...
  • 在windows下本地测试的启动报错,在尝试了百度各种方法之后找到了解决办法,报错如图: 解决办法: 删除jar包META-INF目录下的.SF .DSA ,RSA 后缀...删除文件后,在本地测试启动jar包jar包正常运行,问题解决。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 471,569
精华内容 188,627
关键字:

java找不到jar包里的class

java 订阅