jar加载失败(java 加载了jar包就出现功能)

http://www.itjxue.com  2023-02-24 06:24  来源:未知  点击次数: 

为什么我打开我java的jar包会出现这样的错误?

那可以考虑做一个bat文件,以下是我的个人经验总结:

1.首先第一步:从网上下载fat.jar的第三方插件,加在myeclipse的dropins文件夹内,重启后,对项目名称点击右菜单,即可发现 有build fat jar这个选项。

2.第二步,正确选择选项,比如one -jar ,填上主方法名(记得要加包名),点击下一步弹出添加第三方的jar包,这一步很重要,添加好后,点击确定即可完成

3.然后直接在你存的jar文件,双击即可运行。

4,如果要做成bat 文件,只需建立一个 start.bat,用编辑选项,在里面加上这样一句代码:

java -jar xxxxx.jar log.txt.

说明: log.txt如果没有,电脑会自动创建,创建好后,一个注意点是,很多这种java的项目,在myeclipse中反而无法显示,所以了,你的jar给用户的时候,把图片也一起打包,这样,双击运行bat文件后,它会自动加载图片,完成。

望请采纳,我已经试过了的,可以行的,前提是你已经下载了JDK还有myecipse和fat.jar第三方插件,祝你成功。

java加载jar中的类报错,求解

defineClass这个方法你没有重写吧?

如果没有的话,检查你的jar中,类路径是否正确,检查json第三方包的版本,如果名字错误,就找不到了

关于Jar加载顺序的问题分析

公司在做技术升级,升级日志后遇到应用部署A节点正常,B节点失败诡异情况,而后一段时间再次遇到同类问题,决定有必要一探究竟。

B节点失败的错误信息:

猜测:A节点正常,是因为先加载了sl4j-api.jar中的LocationAwareLogger.class,而B节点失败,是先加载了activemq-all.jar中的LocationAwareLogger.class,启动时程序找不到对应的方法报错。

应用运行在Tomcat容器,翻看类加载部分的源码。slf4j包Logger类加载器是Tomcat的ParallelWebappClassLoader,由父类WebappClassLoaderBase实现类加载功能。

类加载入口:

关注首次class文件从jar包中找到的过程。调用StandardRoot.getResourceInternal寻找class,顺序就是循环allResources(格式:ListListWebResourceSet)。

集合classResources存了WEB-INF/lib目录的Jar资源,在Tomcat启动时调用processWebInfLib()方法初始化。

最终在DirResourceSet类list(String path)方法,其实调用的是java.io.File类list()方法,list调的是UnixFileSystem的native的list()方法。注释及解释;

翻开jdk8对应的OpenJDK源码,UnixFileSystem的list方法,调用的是目录操作函数opendir.

继续向下查操作系统,opendir返回值定义

通过 关于dirent的排序解释。

命令 ll -f 与opendir函数readdir顺序相同。

继续向下查是文件系统的实现,CentOS 6使用的是Ext4,文件顺序与目录文件的大小是否超过一个磁盘块和文件系统计算的Hash值有关。

因Java语言的跨平台特性,在class首次从jar中找到对应的文件时,查找的顺序是文件操作系统实现决定,与inode值无关。那么像active-all.jar将依赖一起打包的方式极易出现这类问题!!!

感谢前人栽树:

eclipse生成jar文件失败

你不告诉eclipse数据库驱动在哪里,它怎么编译呢,因为注册驱动的时候需要数据库驱动包,你没有当然会没法通过编译(找不到class)。

办法很简单,工程里建个lib目录,project-property-java build path-library选项卡中的add jar,把需要的包选上

注意,就算编译好了,还是需要依赖数据库驱动包。打包成jar的时候eclipse会自动把依赖的包加载,当然你可以选择不加载,这样程序会出错

等你稍微了解一点eclipse之后会喜欢这东西的

在cmd中运行.java 或者.jar文件出错,是什么问题?

先检查环境变量配置是否正确,

如果没问题就看一下lib和jre/lib中的rt.pack、tools.pack如果发现这两个文件的话,就是因为他们没有解压我们只需要把他们解压成rt.jar和tools.jar就一切OK了

运行jar文件失败classpath下的资源文件找不到

我没有用过 spring

classpath:applicationContext.xml ?这个配置,

如你图中所示,放在了resources中,那么在工程中是可以运行的?

只是打包到jar 中以后找不到?

提几点猜测

resources中的配置文件,没有找包进去。

ClassPathXmlApplicationContext ?这个可能不支持 jar中的使。

? ? ? 不知道有没有支持流的文法,如果有,你可能改成

? ??InputStream stream = this.getClass().getResourceAsStream("/resources/spring.xml");

这样来加载,试一下。

(责任编辑:IT教学网)

更多

推荐其他营销文章