1.IntelliJ IDEA中的java项目生成jar包
IntelliJ IDEA中的java项目(比如:myproject),可以生成jar包。
本文以IntelliJ IDEA 2022.3 版本为例进行介绍,方法如下:
1. 依次选择菜单:File->Project Structure...,打开“Project Structure”界面。
2. 在打开界面的左侧列表中选择:Artifacts,点击右侧出现的+号。
3. 在出现的菜单中依次选择:JAR->From modules with dependencies...,
打开“Create JAR from Modules”界面。
4. 在Main Class输入框中输入main方法所在类的完整包名+类名,或者点击右侧的选择图标,直接选择。
5. 如果当前项目没有其他依赖的话,可以选择“JAR files from libraries”中的任意一项。
如果当前项目有外部jar包依赖的话,推荐选择“copy to the output directory and link via manifest”,
这样打包的jar包不包含所依赖的外部jar包。
6. “Directory for META-INF/MANIFEST.MF”中输入META-INF目录的路径,推荐项目根目录。
7. 点击“OK”按钮。
在出现的界面中可以看到“Output directory”输入框,可以修改这个路径,用来保存生成的jar包,一般保持默认即可。
然后选中“Include in project build”选项。点击“OK”按钮,完成配置。
8. 如果要生成jar包,可以依次选择菜单:Build->Build Artifacts...,打开“Build Artifacts”快捷菜单。
9. 然后依次选择菜单:myproject:jar->Build,就开始构建jar包了。
构建完成后,就可以到前面定义的保存路径中查看了。
2. 运行
Windows/linux
java -jar myproject.ja
3.错误与解决
3.1 错误1:Windows下运行jar包出错
E:\JAVA-ALL\PJT-sets\gen-segment-file\out\artifacts\gen_segment_file_jar>java -jar gen-segment-file.jar
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: Main has been compiled by a more recent version of the Java Runtime (class file version 63.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
E:\JAVA-ALL\PJT-sets\gen-segment-file\out\artifacts\gen_segment_file_jar>
解决:
需要安装匹配版本的jdk-1.8版本
File->Project Stucture->Project
3.2 Linux运行错误与解决
错误:
java -jar myproject.jar
-bash: java: command not found
解决:
安装Java运行环境:
>> yum -y list java*
Available Packages
java-1.5.0-gcj.x86_64 1.5.0.0-29.1.el6 base
java-1.5.0-gcj-devel.x86_64 1.5.0.0-29.1.el6 base
java-1.5.0-gcj-javadoc.x86_64 1.5.0.0-29.1.el6 base
java-1.5.0-gcj-src.x86_64 1.5.0.0-29.1.el6 base
java-1.6.0-openjdk.x86_64 1:1.6.0.41-1.13.13.1.el6_8 base
java-1.6.0-openjdk-demo.x86_64 1:1.6.0.41-1.13.13.1.el6_8 base
java-1.6.0-openjdk-devel.x86_64 1:1.6.0.41-1.13.13.1.el6_8 base
java-1.6.0-openjdk-javadoc.x86_64 1:1.6.0.41-1.13.13.1.el6_8 base
java-1.6.0-openjdk-src.x86_64 1:1.6.0.41-1.13.13.1.el6_8 base
java-1.7.0-openjdk.x86_64 1:1.7.0.261-2.6.22.1.el6_10 updates
java-1.7.0-openjdk-demo.x86_64 1:1.7.0.261-2.6.22.1.el6_10 updates
java-1.7.0-openjdk-devel.x86_64 1:1.7.0.261-2.6.22.1.el6_10 updates
java-1.7.0-openjdk-javadoc.noarch 1:1.7.0.261-2.6.22.1.el6_10 updates
java-1.7.0-openjdk-src.x86_64 1:1.7.0.261-2.6.22.1.el6_10 updates
java-1.8.0-openjdk.x86_64 1:1.8.0.272.b10-0.el6_10 updates
java-1.8.0-openjdk-debug.x86_64 1:1.8.0.272.b10-0.el6_10 updates
java-1.8.0-openjdk-demo.x86_64 1:1.8.0.272.b10-0.el6_10 updates
java-1.8.0-openjdk-demo-debug.x86_64 1:1.8.0.272.b10-0.el6_10 updates
java-1.8.0-openjdk-devel.x86_64 1:1.8.0.272.b10-0.el6_10 updates
java-1.8.0-openjdk-devel-debug.x86_64 1:1.8.0.272.b10-0.el6_10 updates
java-1.8.0-openjdk-headless.x86_64 1:1.8.0.272.b10-0.el6_10 updates
java-1.8.0-openjdk-headless-debug.x86_64 1:1.8.0.272.b10-0.el6_10 updates
java-1.8.0-openjdk-javadoc.noarch 1:1.8.0.272.b10-0.el6_10 updates
java-1.8.0-openjdk-javadoc-debug.noarch 1:1.8.0.272.b10-0.el6_10 updates
java-1.8.0-openjdk-src.x86_64 1:1.8.0.272.b10-0.el6_10 updates
java-1.8.0-openjdk-src-debug.x86_64 1:1.8.0.272.b10-0.el6_10 updates
java-clearsilver.i686 0.10.5-16.el6 epel
java-dirq.noarch 1.4-1.el6 epel
java-dirq-javadoc.noarch 1.4-1.el6 epel
java-service-wrapper.x86_64 3.2.5-23.el6 epel
java-service-wrapper-javadoc.noarch 3.2.5-23.el6 epel
java-sleep.noarch 2.1-6.el6 epel
java-sleep-javadoc.noarch 2.1-6.el6 epel
java_cup.x86_64 1:0.10k-5.el6 base
java_cup-javadoc.x86_64 1:0.10k-5.el6 base
java_cup-manual.x86_64 1:0.10k-5.el6 base
javacc.x86_64 4.1-0.5.el6 base
javacc-demo.x86_64 4.1-0.5.el6 base
javacc-manual.x86_64 4.1-0.5.el6 base
javassist.noarch 3.9.0-6.el6 base
javassist-javadoc.noarch 3.9.0-6.el6 base
javastroke.x86_64 0.5.1-33.el6 epel
javatar.noarch 2.5-5.el6 epel
javatar-javadoc.noarch 2.5-5.el6
>> yum -y install java-1.8.0-openjdk*
或手动安装:
目录
准备工作
操作系统:CentOS 8.3
Java:JDK 17
Java 17下载页面
以 x64 Compressed Archive 版本为例,获取到下载链接
下载链接:https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
登录CentOS服务器,使用 wget 命令下载JDK
## 若无wget命令,使用yum方式安装 yum install -y wget ## 查看wget版本,验证是否安装成功 wget --version ## 下载JDK wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
下载成功示意图
JDK 17 x64 Compressed Archive
成功下载到JDK安装包 jdk-17_linux-x64_bin.tar.gz
安装步骤
## 进入安装目录 cd /usr/local/ ## 新建Java安装目录,并进入此目录 mkdir java cd java/ ## 将安装包解压缩到java目录(我的安装包下载到了/root目录下,注意自己的安装包下载位置) tar -zxvf /root/jdk-17_linux-x64_bin.tar.gz
解压后的JDK目录
## 进入目录 cd jdk-17.0.4.1/ ## 查看解压后的目录内容 ls
解压后的JDK目录内容
## 配置环境变量 vi /etc/profile
vi编辑器提示进入vi编辑器时为命令模式按 i 键进入编辑模式,此时可以修改文件内容按 Esc 键退出编辑模式,进入命令模式命令模式下输入 :wq 后按回车(Enter)键保存并退出
向 profile 文件中追加Java环境变量配置后保存
## set java environment JAVA_HOME=/usr/local/java/jdk-17.0.4.1 PATH=$PATH:$JAVA_HOME/bin export JAVA_HOME PATH
使Java环境变量生效
## 重新加载profile source /etc/profile
验证Java环境
## 查看Java版本 java -version
查看Java版本
到此,Java环境安装完成;
重新运行程序:
>> java -jar gen-segment-file.jar
Hello world!