Java项目导入IDEA的流程配置以及常见问题解决方法
作者:*猪耳朵* 发布时间:2021-11-21 10:02:24
前言
本文主要演示一个普通 java 项目导入IDEA的流程步骤及可能出现的问题、原因及解决办法。
本文使用的部分软件版本如下:
IDEA 2018.3
JDK 1.8
Window
1.导入Java Project
导入之后可能发出现大面积红色,这里我们要配置一下java jdk(一般导入工程后会自动提示)和我们依赖的jar包(注意程序与jar版本间的对应),一般依赖的jar等在一个lib文件夹(可能没有)下:
解决方法:
1.配置java sdk和工程依赖问题
1.1 配置Java JDK
在IDEA中点击 FILE -> Project Structure -> Project:
在这里根据自己的项目工程实际配置 java jdk 版本(可能存在版本冲突)及编译输出(IDEA默认会自己识别,没有编译输出
也会出错,可参考第二部分常见问题的对应解决办法)
1.2 配置工程依赖
这里实际是解决程序因依赖丢失或出错造成的程序部分代码段爆红的问题
STEP 1: 在IDEA中点击 File -> Project Structure -> Libraries -> + -> Java:
可以使用快捷键 CTRL+ALT+shift+S
选择jar包的位置:
确定依赖jar及资源位置后点击 OK:
STEP 2: 在IDEA中点击 File -> Project Structure -> Modules -> + -> JARS or directories:
选择对应的lib或者你下载好的jar位置,勾选后点击 APPLY:
这里配置结束后IDEA会自动进行更新和导入依赖资源,此时爆红消失。
1.3 设置 src 空间,指定Sources Root等
PS: 除了常规的 Sources Root外,大家还应根据自己的实际情况配置Resources Root以及Test Sources Root 等!!!
到这步可能的现象为 启动类是灰色的,且main函数无法运行,没有绿色的三角
STEP 1: 先找到启动类的 .java 文件,检查一下 package 路径,路径中不能出现以java开头命名的包名;
STEP 2: 在Java Project结构下选择根目录 src 后右键 ->Make Directory as -> Sources Root:
此时识别到了启动类,绿色的三角也出现了(run运行的按钮变成绿色):
配置完成!!!
如果工程较大,文件很多,java类中的方法也特别多,我们可以通过在Project Structure中的Modules中进行设置或者点击IDEA左侧的Structure查看、查找:
File -> Project Structure -> Modules ->Sources 中进行配置:
2. 常见问题
问题1:出现报错:java.lang.SecurityException: Prohibited package name: java.com.demo
1.1 原因
包路径里不能以java开头,preDefineClass方法首先对类名进行了检查,发现以java作为一级包名,则抛出安全异常:禁止使用的包名!
这条安全异常是由Java类加载的“双亲委派模型”而导致。在双亲委派模型中,由父加载类加载的类,下层加载器是不能加载的。本例中最高层加载器BootstrapClassLoader加载了classpath路径下所定义的java.*包内的类,而java.research包就不能由BootstrapClassLoader的下层加载器AppClassLoader加载了。这也是java安全机制中对于恶意代码所采取的防护措施。
这里的package路径为 java.com.demo
1.2 解决方法
更换一个包名,右键 java 包选择 Refactor -> Rename -> 修改包名:
此时即可正常运行了:
问题2:运行时报错:错误: 找不到或无法加载主类 java.com.demo.xxxx
2.1 原因 可能是有问题1引起,路径中存在以java开头的包名;类名错误类所在位置未添加至类加载路径中没有指定对应的文件夹为 Sources 2.2 解决方法
检查自己的类加载路径,检查类名,肯定有问题
之后删除编译文件存储位置即out文件夹;
接着清除缓存 ( 点击 File -> Invalidate Caches \ Restart -> Invalidate and Restart \ Invalidate )
最后重新编译工程 ( 点击 File -> Build -> Rebuild Prodject )
问题3:Java JDK的版本兼容性问题
在IDEA中点击 file –> project structure –> sdks 选择电脑目前存在的与当前工程匹配的JDK:
3.1 原因
当前的Java JDK与工程所用的JDK不兼容
3.2 解决方法
检查工程的JDK,选择工程对应的JDK
问题4:运行时报错the output path is not specified for module
4.1 原因
Java工程没有配置编译路径,实际就是缺了out
4.2 解决方法
在IDEA中点击File -> Project Structure -> Project -> Project compler output:
在工程路径后添加一个out路径即可,之后点击Run即可。
问题5:出现这个错误:Error:java: Compilation failed: internal java compiler error 5.1 原因
未配置编译路径
5.2 解决方法
配置编译路径
在IDEA中点击Settings -> Build -> Compilier-> Java Complilier -> +:
选择项目工程和对应的版本
问题6:报错无效的目标发行版:17 的解决办法
6.1 原因
JDK 版本和电脑上不一致
6.2 解决办法
在IDEA中 Settings --> Build, Execution, Deployment --> Complier --> Java Complier 配置下的 Project bytecode version: 17 改为 与 项目使用的 JDK 版本一样即可,这里我使用的是 JDK1.8。
问题7:IDEA项目导入后文件名变成红色
注意是文件名红色,不是文件名下有波浪线!!!
7.1 原因
IDEA配置了版本控制工具如Git,Svn等,代码发生变化但还未提交,主要起提示作用,没啥影响;
7.2 解决办法
在IDEA中选择 file–> setting –> version Controller -> vcs选项选为 none 。
问题8:IDEA项目out中文件目录与项目目录不一致,导致出现找不到xxx 8.1 原因
IDEA中的Java项目未配置指定工程的Sources Root 和 Resources Root 等
8.2 解决办法
根据Java工程配置对应的 Sources :
之后删除编译文件存储位置即out文件夹;
接着清除缓存 ( 点击 File -> Invalidate Caches \ Restart -> Invalidate and Restart \ Invalidate )
最后重新编译工程 ( 点击 File -> Build -> Rebuild Prodject )
来源:https://blog.csdn.net/cjw12581/article/details/128146827


猜你喜欢
- 目前的App在安装后,第一次打开,都会显示两秒左右的logo,然后进入引导页。如果关闭App,再重新打开,则只会显示logo,然后直接进入主
- 1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有
- c++优先队列(priority_queue)用法详解普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元
- 前言由于多核系统普遍存在,并发性编程的应用无疑比以往任何时候都要广泛。但并发性很难正确实现,用户需要借助新工具来使用它。很多基于 JVM 的
- 1、 定义头和根元素部署描述符文件就像所有XML文件一样,必须以一个XML头开始。这个头声明可以使用的XML版本并给出文件的字符编码。DOC
- 图片解析:1.生成字节码文件的过程可能产生编译时异常(checked),由字节码文件到在内存中加载、运行类此过程可能产生运行时异常(unch
- 前言开发系统时,有时候在实现功能时,删除操作需要实现逻辑删除就是将数据标记为删除,而并非真的物理删除(非DELETE操作),查询时需要携带状
- filter自定义过滤器 增加了 对验证码的校验package com.youxiong.filter;import com.y
- 一、 JPA概述JPA的全称是Java Persistence API, 即Java 持久化API,是SUN公司推出的一套基于ORM的规范,
- spring.activemq.pool.enabled=false时,每发送一条数据都需要创建一个连接,这样会出现频繁创建和销毁连接的场景
- ReentrantLock内部由Sync类实例实现。Sync类定义于ReentrantLock内部。Sync继承于AbstractQueue
- System.Collections.ArrayList类是一个特殊的数组。通过添加和删除元素,就可以动态改变数组的长度。一.优点1. 支持
- Get请求1.简单发送Get请求/// <summary>/// 指定Url地址使用Get 方式获取全部字符串/// </
- C++类返回值是*this成员函数当C++类的成员函数其返回值是*this时,表示返回值是调用该成员函数的变量的引用。例如:class A{
- 之前接了需求要让视频播放时可以像优酷视频那样在悬浮窗里播放,并且悬浮窗和主播放页面之间要实现无缝切换,项目中使用的是自封装的ijkplaye
- 最近做通讯录小屏机 联系人姓名显示--长度超过边界字体变小/** * 自定义TextView,文本内容自动调整字体大小以适应TextVie
- 详解Java使用super和this来重载构造方法实例代码://父类 class anotherPerson{ String
- 使用可以绑定数据源的控件我们需要有实现了IList接口的类作为数据源,我们有很多的方法,比如使用ArrayList或者List的泛型类都是很
- 概述:Flutter 标签类控件大全ChipFlutter内置了多个标签类控件,但本质上它们都是同一个控件,只不过是属性参数不同而已,在学习
- 一、概括1.通常创建一个对象的方法如图:通过 Student tom = new Student(); 创建tom对象,这种创建