Java问题集合

文章目录

  • 1 常用API
    • 1.1 ArrayList
    • 1.2 字符串常用操作
  • 2 Maven
    • 2.1 IDEA配置Maven
    • 2.2 maven配置错误之Unable to import maven project
    • 2.3 maven打包微服务项目
  • 3 暂未解决的问题
    • 3.1 微服务项目,mysql密码加密
  • 4 运行docker容器出现 Error:Invalid or corrupt jarfile xxx.jar

1 常用API

1.1 ArrayList

定义;ArrayList artlist = new ArrayList();

get()

方法 描述
get() 通过索引值获取 arraylist 中的元素
size() 长度

1.2 字符串常用操作

定义字符串 String s = new String(‘hello,wordl’)

s.substring(0,n) //获取部分字符串,包括0位,不包括n位
s=s+s1; //拼接字符串

2 Maven

2.1 IDEA配置Maven

  1. 首先去maven官网去下载maven,http://maven.apache.org/ 这里教大家一个小技巧,apache公司的所有项目都可以通过像maven.apache.org或tomcat.apache.org这种形式直接访问( 项目名.apache.org)。
    Java问题集合_第1张图片

并且将maven压缩包解压,要记住解压的位置,在后面的环境配置中需要;
Java问题集合_第2张图片
2. 接下来就是环境配置,到属性中去找到高级系统设置,打开环境变量;在系统变量里新建一个系统变量,变量名:MAVEN_HOME,变量值就是maven的解压位置;

Java问题集合_第3张图片
再下一步就是配置path变量,编辑path变量,将%MAVEN_HOME%\bin添加进去;

Java问题集合_第4张图片
这个样子我们的maven就配置好了。

3.maven核心全局配置文件
新建一个文件夹repository作为我们的本地仓库,maven下载的jar包都会存放在这个文件夹下。
Java问题集合_第5张图片
接下来打开maven文件夹下的conf文件夹,打开里面的setting.xml文件,推荐使用Notepad++打开,防止编译报错。
(1)首先配置本地仓库路径,直接将红线部分复制下来修改即可;
Java问题集合_第6张图片
(2)接下来配置阿里云镜像,推荐配置,镜像后下载速度会更快;
我这里配置了三个,不过一般配置阿里云即可;

  
      alimaven
      aliyun maven
      http://maven.aliyun.com/nexus/content/groups/public/
      central
    

(3)配置全局编译的JDK版本,这里推荐使用JDK1.8。
JDK1.8这里可以不用配置,其他版本根据需要修改即可。
Java问题集合_第7张图片
配置在这个位置即可。此时的maven核心全局已经配置结束。

4.在idea中配置maven
首先打开file --> Other setting --> Defualt setting ,idea2019版本应该是 setting for new project 里面,作如下修改:
第一个红框选择maven解压位置,第二个红框选择我们刚刚配置的setting.xml文件,第三个红框选择我们新建的本地仓库repository
需要注意的是:idea使用的JDK版本要和第二步试运行maven时显示的JDK版本一致。

Java问题集合_第8张图片
然后打开Settings设置maven参数与上面一致。其中的Importing 和 Runner 内的 JDK 和 JRE 版本要一致。
Java问题集合_第9张图片
在新建项目中,会出现一个pom.xml文件,这里是存储你版本信息以及进行maven仓库配置和下载的。

Java问题集合_第10张图片

2.2 maven配置错误之Unable to import maven project

maven版本过高,idea带不动…,所以安装低版本的maven即可。


后来者谨记,idea2017版记得使用maven3.5版本,反正我用了3.5.0最低版。

2.3 maven打包微服务项目

1.pom.xml里面添加红色框类容
Java问题集合_第11张图片
2.进入到要打包服务的目录,执行 mvn clean package

在这里插入图片描述
3.jar包就是打包好的东西,使用 java -jar xxxx.jar 运行
Java问题集合_第12张图片

3 暂未解决的问题

3.1 微服务项目,mysql密码加密

$2a 10 10 10PhnLmwA7QarH8M/Wc52Mfekoyqw74Vp619M2p2dnxq0Ltz6xXTWJu

数据库当中mysql的密码如下,在使用post进行验证的时候,输入的是123456。有一次将数据库里面的密码改成123456,postman验证失败,提示 BCrypt等字样信息。猜测数据库里面的密码是要采用这种加密的形式存储。

4 运行docker容器出现 Error:Invalid or corrupt jarfile xxx.jar

一开始以为是dockerfile的问题,一直在哪捣鼓。还是记录一个可能的解决方案,万一以后用到。

奉上dockerfile(网上找的,我当时用的和这个差不多):

FROM  jdk1.8:latest  
ADD docker-0.0.1-SNAPSHOT.jar   app.jar  
EXPOSE 8087  
ENTRYPOINT ["java","-jar","/app.jar"] 

就是在ADD指令出现错误。
ADD指令
ADD指令的功能是将主机构建环境(上下文)目录中的文件和目录、以及一个URL标记的文件 拷贝到镜像中。
其格式是: ADD 源路径 目标路径
如果源路径是个文件,且目标路径是不是以 / 结尾,则docker会把目标路径当作一个文件。
如果目标路径不存在,会以目标路径为名创建一个文件,内容同源文件;
所以此处犯的错误就是,目标路径app.jar不是一个路径,需要加上“/”,变为:

FROM  jdk1.8:latest  
ADD docker-0.0.1-SNAPSHOT.jar   /app.jar  
EXPOSE 8087  
ENTRYPOINT ["java","-jar","/app.jar"] 

实际问题:
当时的jar包在linux上无法运行,运行就报同样的错:

Invalid or corrupt jarfile .jar app.jar

因为该jar包在Windows上可以运行,就没注意。

错误原因:项目中的META_INF配置文件路径错误,应该放在根目录下面,就是与src同级。

解决办法:

IDEA 打包springboot 项目为jar包。

打包方法百度了好几种,结果都在运行时报了Error :Invalid or corrupt jarfile xxx.jar错误。

万万没想到,最后的真凶竟然是。。。。。。智能的IDEA。

首先我贴一下打包的方法:

Java问题集合_第13张图片

Java问题集合_第14张图片

Java问题集合_第15张图片 Java问题集合_第16张图片

到这个地方重点来了,我的jar包错误的罪魁祸首就是这万恶的META_INF配置文件的存放路径错误。IDEA自动配置的路径是错误的,我们应该将其放置在项目的根路径:

Java问题集合_第17张图片

然后我们开始一路OK。。。。。来到这个界面,我们选择apply然后OK!

Java问题集合_第18张图片

此时我们的项目下应该有一个META-INF配置文件夹,并且与src文件夹同级。然后我们:

Java问题集合_第19张图片

Java问题集合_第20张图片

等一小会就生成jar包,再扔到服务器启动。ok。

你可能感兴趣的:(java,开发语言,后端)