-
2021-03-13 19:16:50
Java错误
使用Java中awt以及Swing包时 ,eclipse有时会报错包无法使用
选中工程右键点击Bulid Path->Configure->
将JRE那个框的√打上
选中JRE后点击Edit选择版本1.8就好
会出现
这个包,但是前面会有红×报错影响使用
去掉可以选中工程右键点击Properties->Java Compile
选择与Java版本对应的即可
1.8吧,比较稳定,
最后在JDK9及以上版中,建立一个单独的类,无法执行。
其中的错误提示:
Error occurred during initialization of boot layer.
helloMyJava.class found in top-level directory (unnamed package not allowed in module)
1
2
初始化引导层期间发生错误。
在顶级目录中找到helloMyJava.class(模块中不允许使用未命名的包)。
原因是JDK9及以上版本中,引入了模块。所以要是在default package建立一个单独运行的类,就无法通过编译。在JDK8中就没有这样的问题。
同时,如果依然想在default package中运行单独的类。删除module-info.java就可以了。
(本文为CSDN博主「DylanTam」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_40105316/article/details/82529579)
更多相关内容 -
java源码包---java 源码 大量 实例
2013-04-18 23:15:26WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。 Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB... -
JAVA-打包成jar包
2021-06-05 17:46:13利用java工具jar打包 利用eclipse打包 一.利用java工具jar打包 主线:编译 - 打包 - 运行 jar包无入口 jar包有入口(即有main()函数),可以直接运行 1.jar包无入口,只作为jar包,而不用运行 直接打包即可 ...目录:
- 利用java工具jar打包
- jar包无入口
- jar包有入口(即有main()函数),可以直接运行
- 运行jar包时候加载指定依赖其他jar支持包的目录
- 利用eclipse打包
- 打包 jar file
- 打包 runnable jar file
- Java项目(jar包形式)指定端口启动服务
- 相关问题
一.利用java工具jar打包
主线:编译 - 打包 - 运行
- jar包无入口
- jar包有入口(即有main()函数),可以直接运行
1.jar包无入口,为了供其他开发者使用,而不用运行
直接打包即可
目录:
注意需要先将源文件编译
1.执行打包命令:
结果:
2.编写测试类,引入A.jar
package test; import test.A; public class Test { public static void main(String[] args) { A a = new A(); System.out.println(a.P(1, 3)); // 4 } }
3.解压jar包文件
可以看到打包后,多了一个MANIFEST.MF文件,这个文件很重要,在打包为入口的jar包时,需要用到,内容如下:
注意:可以看到最后两行是空行,所以我们新建MANIFEST.MF文件结尾也要有空行
4.如果直接运行A.jar,不能运行,想要可以运行可以修改A.jar中的MANIFEST.MF文件。
2.jar包有入口(即有main()函数),可以直接运行
1.新增MANIFEST.MF 文件内容 (名字任起,比如可以叫manifest,因为MANIFEST.MF 是打包后的默认名称,所以直接取MANIFEST.MF )
Manifest-Version: 1.0 Main-Class: test.A Class-Path: lib/gson-2.8.7.jar lib/fastjson-1.2.73.jar
注意:
- 冒号后面加一个空格
- Main-Class: 包含main方法的类,Main-Class后面是类的全地址,比如你的主文件是A.java,文件里打包为package com.main; 那么这里就写com.main.A,不要加.java后缀,主文件地址写错将会出现“找不到或无法加载主类”的错误;
- Class-Path: 依赖的jar包的路径,如果依赖多个jar包,使用空格隔开
路径:相对路径,jar包相对于helloworld.jar文件的路径
绝对路径,jar包在操作系统中的路径
常用相对路径,将依赖的jar包和自己的jar包放在同一级目录下,这样Class-Path直接写依赖jar包的名字即可。
如上:
我们的项目打包后为A.jar,那么按照上面的定义,应该在 A.jar的同层目录建立一个lib文件夹(即lib文件和打包的jar文件
在同一个目录下),并将相关的jar包放在里面。否则将会出现“Exception in thread "main" java.lang.NoClassDefFoundError”的错误;
- 最后必须回车到新的空行,否则出错,如下面内容就必须在lib/fastjson-1.2.73.jar后面再输入一个回车
2.打包:
3.运行:
或者
如果在MANIFEST.MF 文件中没有指定Class-Path ,可以在运行的时候指定需要的依赖的jar包的路径
二.利用eclipse打包 【jar file与runnable jar file及区别】
打包 jar file
项目结构目录
package utils; public class Math { public static void main(String[] args) { System.out.println("starting... "); } public void P() { System.out.println(3.1413528); } }
步骤1:准备主清单文件 “MANIFEST.MF”,程序打包时会用到。
步骤2:右键项目Export,打包 jar file
步骤3:
第3处需要注意:如果有需要依赖的第三方jar包放在lib目录下,那么打的jar包需要放在lib的同目录
这里有几个选项:
-
* Export generated class files and resources 表示只导出生成的.class文件和其他资源文件 * Export all output folders for checked projects 表示导出选中项目的所有文件夹 * Export java source file and resouces 表示导出的jar包中将包含你的源代码*.java,如果你不想泄漏源代码,那么就不要选这项了 * Export refactorings for checked projects 把一些重构的信息文件也包含进去
步骤4:选择我们在第一步中自定义的配置文件路径,这一步很重要,不能采用默认选项。(如果我们没有依赖的第三方jar包,也不是一个可运行的jar包(即没有main()函数),那么这一步可以跳过,在上一步的时候就finish)
这里解释一下配置项:
* Generate the manifest file:是系统帮我们自动生成MANIFEST.MF文件,如果你的项目没有引用其他class-path,那可以选择这一项。 * Use existing mainfest from workspace:这是可以选择我们自定义的.MF文件,格式如上所写,引用了第三方包时选用。 * Seal content:要封装整个jar或者指定的包packet。 * Main class:这里可以选择你的程序入口,将来打包出来的jar就是你这个入口类的执行结果。
最后Finish,即生成了我们要的jar文件。
运行该jar文件有两种方式:
1. 在命令行下运行命令java -jar 你的jar文件名称,比如我的执行如下:
如果在jar中有一些System.out.prinln语句(如上执行结果),运行后不想在控制台输出而是保存在文件中方便以后查看,可以用一下命令:
java -jar pro1.jar > log.txt (这时命令行窗口不会有任何输出)
输出信息会被打印到log.txt中,当然log.txt自动生成,并位于和pro1.jar一个目录中。2. 新建一个批处理文件,如start.bat,内容为:java -jar pro1.jar,放在jar文件同一目录下即可,以后点击自动运行即可,更加方便。
打包 runnable jar file
注意:library handling中
- 第一个为提取extract需要的依赖的库或jar合成到jar 文件里;
- 第二个则仅仅打包依赖库到jar文件;
- 第三个则把依赖库放到一个文件夹中。
例如,项目需要引用的第三方外部jar如下
将项目分别用三种库处理方式,并导出,然后将各个jar解压便可对三种方式一目了然。
解压:
第一种方式:
第二种方式:
第三种方式:如解压图所示把依赖库放到一个文件夹中
运行即可
三.Java项目(jar包形式)指定端口启动服务
java -jar xxx.jar --server.port=80
四.相关问题
内容导航:
Q1:java项目打包成jar不能访问图片问题
一、通过使用外部资源文件的方式解决
把项目打包生成Jar后,再新建一文件夹,把项目中所有使用的图片文件和生成Jar文件放在该目录下,只要代码对图片文件的引用路径正确,如:ImageIcon image=new ImageIcon(SwingResourceManager.getImage("imagefilePath"));就可以了。
这种方式下,图片文件与类文件不是一块放在包中的,类文件在包中,而图片文件在项目根目录下。
二、通过使用内部资源文件的方式解决
把所用的图片文件放在项目使用的包中,打包时把图片文件同时打进Jar文件中。这种方式在具体代码中应使用下面其中一种:
1.ImageIcon image = new ImageIcon(this.getClass().getResource("imagefilePath"));
2.ImageIcon image = new ImageIcon(main.class.getResource("imagefilePath"));
3.ImageIcon = SwingResourceManager.getImage(main.class,"imagefilePath");
4.3.ImageIcon = SwingResourceManager.getImage(this.getClass(),"imagefilePath");
3和4中第一个参数代表图片文件路径的参照对象,不能少,否则不能正确获得图片资源。 最后,朋友们一定要注意大小写的问题,在项目中文件名的大小写没有影响,但是打包后,就必须注意文件名大小写问题了,否则也是不行的。
Q2:我在Eclipse中将一个java项目打包成jar文件后,为什么双击它时没反应?但在eclipse中是可以运行的
jar 文件要在命令行里运行,开始->运行(XP)/在搜索程序和文件对话框里->里输入cmd->在弹出的cmd框中键入:java -jar 你的JAR文件完整路径和名称.jar-> 回车,就可以运行了。
普通双击是没用的(并没关联到 java 并以-jar参数运行),甚至常常被当做一个类似rar的包打开。
Q3:如何将一个Java项目打包打成多个Jar包
eclipse和Myeclispe的导出功能 都是可以支持在同一个项目内 分包打成jar的 由于程序本身是有依赖关系的 所以分包的jar也是要相互支持才行。至于想复用可以做一些公共的功能包打成jar,反复使用也是可以做到的。
wwW.YijIt:ao.com
Q4:如何用myeclipse导出Java项目(含外部jar包)
右击项目,单击export=》java=》选第三个Runnable Jar file (可执行的jar文件),Next,
选择launch configuration(程序入口配置),Exportdestination(导出目标)
Library handing:
选择第一个 引用的jar包会整合到项目中去。
选择第二个 引用的jar包会单独放在项目根目录下。
选择第三个 引用的jar包会单独放在一个文件夹下,这个文件夹和导出的jar放在同一目录下,
finish。
Q5:如何将带包的java项目文件打包成jar
是jar.exe
要如何建立Jar文件呢?只要使用JDK提供的Java的文件包工具,就是jar.exe,这个就可以将Java程序打包成一个jar文件了。其实就是一个压缩包形式的。
这个jar和JDK中的java或者javac 的用法差不多。
呵呵,以我的为例,我的JDK的安装路径是:D:\Program Files\Java\jdk1.5.0_12\bin
所以你想详细的查看jar怎么用就可以在命令提示符中输入:
D:\>cd Program Files\Java\jdk1.5.0_12\bin\jar
这样你就可以查看jar的使用了。
希望可以帮到你!
Q6:java项目怎么打成可运行的jar包
1、jar包有入口(即有main()函数)
选中要打包的工程--->右键选择Export---->java----->Runnable java file----->next---->在launch configuration输入jar包入口,即该工程要打包的主函数文件----->Export destination输入jar包存放的位置以及文件名---->library handling选择package requreied....JAR---->finish。
2、jar包无入口
选中要打包的工程->右键选择Export---->java----->java file----->next----->Exported all output folders for checked project----->Export destination输入jar包存放的位置以及文件名---->finish。
- 利用java工具jar打包
-
Java关于jar包的知识详解
2021-02-12 12:21:32在学习jar包之前,要先弄懂Java包,以及关于Java包的相关概念。一、包为了更好地组织类,Java提供了包机制。包是类的容器,用于分隔类名空间。如果没有指定包名,所有的示例都属于一个默认的无名包。格式为:package...在学习jar包之前,要先弄懂Java包,以及关于Java包的相关概念。
一、包
为了更好地组织类,Java提供了包机制。包是类的容器,用于分隔类名空间。如果没有指定包名,所有的示例都属于一个默认的无名包。
格式为:
package pkg1[.pkg2[.pkg3…]];
代码实例:
package cn.com.zhouzhou;//包名一定要由小写字母组成
public class Lession1 {
public static void main(String[] args) {
System.out.println("这是我创建的第一个在包下的文件");
}
}
注意事项:
1.程序中如果有package语句,该语句一定是源文件中的第一条可执行语句;
2.package语句的前面只能有注释或空行;
3.一个文件中最多只能有一条package语句;
4.包的名字有层次关系,各层之间以点分隔(上例中的“cn.com.zhouzhou”);
(图:演示)
5.包层次必须与Java开发系统的文件系统结构相同;
6.通常包名中全部用小写字母;
7.当使用包说明时,程序中无需再引用(import)同一个包或该包的任何元素;
8.import语句只用来将其他包中的类引入当前名字空间中。而当前包总是处于当前名字空间中。
* 示例演示:
1)编译的时候用:(我的文件是存在E盘了)
e:\>javac -d . Lession1.java // 可以生成对应的文件夹结构
2)执行的时候,要执行全类名
java cn.com.zhouzhou.Lession1
注意事项说明:
1.同一个源文件中的类,都在同一个包中,同一个包中的内容互相访问,不用导包;
2.导包的时候 以下两句;
import cn.com.zhouzhou.beans.*;
import cn.com.zhouzhou.beans.UserInfo;
这两句,只在编译的时候有后者稍快一点,在运行的时候没有任何区别
3.如果要设置classpath ,要设置到最外层的文件夹所在的目录上,比如:
package cn.com.zhouzhou;
set classpath=cn的所在的文件夹名称
4.对于父包和子包,在使用上没有任何关系,只要不在一个包中,引用的时候就必须导包;
5.以后在开发中,如果出现一个类名找不到的情况,主要以下原因:
1)类名写错了
2)包名错了
3)classpath 设置错了
6.对于 java.lang 包下的类,使用的时候可以不导包。
二、jar包
java中的jar文件 ,装的是 .class 文件。它是一种压缩,和zip兼容,被称为jar包。JDK提供的许多类,也是以jar包的形式提供的。
在用的时候呢,你的文件里有很多个类,把这些类和他们的目录一起压缩到一个文件中给别人,会显得更专业,有条理。别人拿到这个jar包之后,只要让他的classpath 的设置中包含这个jar文件,java虚拟机,在装载类的时候,就会自动解压这个jar文件,并将其当成目录,然后在目录中查找我们所要的类及类的包名和所对应的目录的结构。
那么如何创建一个Jar包呢?下面我将演示一下具体步骤:
1.需要打成jar包的文件
package cn.com.zhouzhou;//包名一定要由小写字母组成
public class Lession2 {
public static void main(String[] args) {
System.out.println("这是我要打jar包的文件");
}
}
2.编译
e:\>javac -d . Lession2.java
(d后面的点,点的两侧都要有空格)
3.打Jar包
jar -cvf myjarbao.jar cn
(生成名叫myjarbao.jar的文件;后面的cn不要忘记)
生成结果如下:
以上所述是小编给大家介绍的Java关于jar包的知识详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
-
如何将 java 项目打包成exe可执行文件
2022-03-15 10:29:42如何将 java 项目打包成exe可执行文件如何使用exe4j把jar打包成exe文件
最近,做了几个javafx的项目,想要把jar包打成exe的可执行软件,下面时我使用exe4j打包的方法
一、将java程序打包成jar包
1. Flie —> Project Structure (或者Ctrl+Shift+Alt+S)
2. Artifacts 设置
3. 选择要打包的项目,选择要执行的 main 函数和jar包路径
当你已经在这个路径下已经建过一个module了的话再次新建module就会报这个错,只要删除对应的文件夹即可4. 点击idea工具栏上的Build–>Build Artifacts… ,之后就会弹出一个小东西,点击build就会在前面设置的路径下生成我们的jar包,其实这个jar包就已经可以运行了,如果想更酷一点就继续看下去把它变成exe可执行文件。
二、将打包后的jar包打包成exe可执行文件
1. 第0步:去官网下载 exe4j
2. 第一步:Welcome
这个地方最好要注册一下,如果你不注册,打包好的软件每次启动都会报:
this executable was created with an evaluation version of exe4j
,一键三连后私信我exe4j验证码
3.第二步: ProjectType
4. 第三步:Application info
5. 第四步:Executable info
在32-bit or 64-bit要勾上 ,在这里插入图片描述
否则对于64位机,最后运行exe时会报错。其余选择默认,点击next
6. 第五步:Java invocation
选择Jar 并Archive后,空白区域会显示已导入的jar,在点击选择Main class,若jar导入成功,则会自动搜素main类,也可以自己选择Main类,然后点击next
查看jar包所在位置:
jar包导入之后
next
7. 第六步:选择合适的JRE
8. 第七步:Splash screen
直接点 next
9. Messages
直接点 next
10. Compile executable
直接点 next
11. Finished
-
夯实Java基础系列5:Java文件和Java包结构
2018-04-24 10:38:00Java包的命名规则 参考文章 微信公众号 个人公众号:程序员黄小斜 技术公众号:Java技术江湖 如果对本系列文章有什么建议,或者是有什么疑问的话,也可以关注公众号【Java技术江湖】联系作者,欢迎你参与本系列博文... -
java源码包4
2013-04-20 11:31:44WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。 Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道... -
java命令行引用jar包的方法
2021-02-12 14:55:57java命令行引用jar包的方法java命令行怎么引用jar包?jar包有哪些常用方法?下面跟yjbys小编一起来学习一下,希望对大家学习java语言有帮助!一般情况下:如果java 文件和jar 包在同一目录编译:D:\wangyu>javac -cp... -
IDEA创建java项目并打包成jar包
2022-04-08 16:38:49IDEA创建java项目的步骤详解 首先在自己的D盘下建一个文件夹,用来存放我们待会新建的项目,我创建了IdeaProject: 1,第一步打开idea 2,第二步选择创建java项目,并选择自己的jdk(我自己本地已经配置了所以有... -
java源码包3
2013-04-20 11:30:13WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。 Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道... -
java源码包2
2013-04-20 11:28:17WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。 Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道... -
java jar包冲突解决办法
2021-07-16 10:49:57现象启动时报错: 2021-07-16 10:46:50.712 [main] ERROR org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter - *************************** APPLICATION FAILED TO START ***************... -
java项目无法启动,报java程序包不存在,但其实存在
2021-12-11 00:12:48出现jar包找不到的问题,首先有可能是项目依赖中有些jar没有下载完整, 而mvn idea:idea这个命令可以检查并继续下载未下载完整的依赖jar, 在命令行输入mvn idea:idea -
IDEA中报错解决方案:Error: java: 程序包javax.servlet.http不存在
2022-06-09 14:02:53IDEA中报错解决方案:Error: java: 程序包javax.servlet.http不存在。 -
Java程序打包成jar文件
2017-12-18 23:17:08Java程序打包jar文件(jar命令形式) 先打开命令提示符,输入jar,然后回车(如果你已经配置好了java环境),可以看到: 用法:jar{ctxu}[vfm0Mi] [jar-文件] [manifest-文件][-C 目录] 文件名... 选项: ... -
Java 错别字检查接口 API
2017-11-14 14:11:08Java 错别字检查接口 API 为了方便广大程序员朋友快速把错别字检查功能集成到自己的系统中,我们开发了一个支持HTTP协议的 Java 错别字检查接口 API,代码放在了 github 上 : ... ...字段二:”mode”, 固定值,... -
idea打包java项目成exe可执行文件
2020-06-18 19:53:42目录基本工具流程概要详细流程把java项目打包成jar包用exe4j把jar包加工成exe文件 基本工具 idea exe4j 下载地址 流程概要 把java项目打包成exe可执行文件简单来说只要两个步骤 把java项目打包成jar包 使用exe4j... -
(java如何获取随机数)random包的使用
2021-12-31 14:49:261.导入包 import java.util.Random; 2.创建对象 Random r = new Random(); 3.产生随机数 int num = r.nextInt(10); 代码解析:10代表的是一个范围,如果括号写10,产生的随机数就是0-9,括号写20,参数的随机数则是0... -
java项目开发中如何查找到项目依赖的jar包?
2021-02-26 09:45:10不管是java普通工程,还是java web项目,甚至是android项目,依赖包的管理有2种:1.直接依赖jar包这种方式简单直白,项目下载后在正确的ide或者稍微做转换就可以运行起来。比如java web工程的WEB-INF/lib下只要按这... -
惊呆了!Java程序员最常犯的错竟然是这10个
2020-01-07 08:39:16比如说:Java 程序员最常犯的错竟然是这 10 个,像这类令人好奇心想害死猫的主题,非常值得扒出来给大家分享一下。 PS:别问我“为什么标题要加上‘惊呆了’?”问了答案就只有一个——吓唬人——总得勾起大家的... -
JAVA上百实例源码以及开源项目源代码
2018-12-11 17:07:42Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来... -
IDEA新建包之后无法新建Java类
2021-06-28 21:19:44只有Kotlin Class/File,没办法新建Java类,我还以为是我新建错了包,多次删了重建后发现还是没办法新建,查了资料后才知道,是包名不规范,空格,下划线,关键词之类的不能在包名里面 只要改掉包名符合规范后,这样... -
有关JAVA包的类名相同问题
2019-04-19 21:28:22在一个包里面有两个文件A.java和B.java,两个文件都自定义了一个Node类。这样写在ecplise 为什么回报“已定义的类”的错。要怎么解决,我只想用自己文件里面的Node类,只是类名字一样。 -
flutter打包apk时报错java.security.NoSuchAlgorithmException: Algorithm HmacPBESHA256 not available的...
2021-10-29 15:11:45flutter打包apk时报错java.security.NoSuchAlgorithmException: Algorithm HmacPBESHA256 not available的解决方法问题概述解决方法build命令说明 问题概述 笔者于2021.10使用flutter编写了一款自己的app,在尝试... -
把Java程序打包成jar文件包并执行
2018-11-29 10:19:49由于是打包引用了第三方jar包的Java项目,故需要自定义配置文件MANIFEST.MF,在该项目下建立文件MANIFEST.MF,内容如下: Manifest-Version: 1.0 Class-Path: lib/commons-codec.jar lib/commons-httpclient-... -
IDEA Error: java: 程序包org.junit不存在,无法通过Test测试
2022-03-04 17:37:37IDEA Error: java: 程序包org.junit不存在,无法通过Test测试 直奔主题,程序包org.junit不存在这个问题,在idea中是很常见的问题, 一般解决方法网上有好几种, 1.改版本号 查看自己idea安装目录中的lib文件夹,... -
java: 程序包javafx.geometry不存在
2021-09-03 17:17:07解读1 2 为解决问题指明方向(诸如【Intellij IEDA运行报错:Error:(4, 19) java: 程序包javafx.*不存在】的解决方案不对症),应从Maven的生命周期着手解决。 解读 3 是具体问题。 我们是在编译java文件的时候... -
我的世界java版材质包转换导入基岩版教程
2021-03-09 03:17:59★前言☆很多基岩版的PVP玩家都想把Java版上的材质包导入基岩版,平时我们想把我的世界Java版的材质包导入基岩版使用,由于材质包部分文件贴图的路径不同,我们无法直接将Java版材质包导入基岩版,这时我们就需要... -
java不同包同名类导入错误
2019-11-07 17:42:00如图,两个包都包含了同为LearnJava2的类。 现在需要向com.learn2.time_07112019包的LearnJava2类中导入com.learn.time_07112019包中的LearnJava2。会报错 如果需要使用,不能import,而是代码中直接写完整...