Java及Python基本开发环境配置

6/6/2021 JetBrains-IDE远程调试Github-CopilotJrebelReverseProxy项目热部署

# 1. JetBrains IDE

# 1.1 JetBrains IDE 简介

Jetbrains系列的IDE,界面美观且功能丰富,基本涵盖了各种常见语言,它们的设置及使用大同小异,建议作为开发的首选IDE。

  • Intellij IDEA:最著名的Java IDE,装上插件也可以运行非Java的项目,功能非常强大。
  • PyCharm:用于Python的IDE,在代码补全、提示、格式化方面都做得很好,PyCharm相关类库的支持也很不错。
  • WebStorm:前端开发的IDE,这方面Jetbrains的优势倒不是很大,因为前端对于语言的需求比较低,用轻量级的编辑器装几个插件基本上就够用了,WebStorm反倒显得有点臃肿,因此我个人更倾向于使用VS Code。

由于Jetbrains系列的IDE是商业化销售的软件,使用前需要破解,当然有能力的话还是去支持正版。

# 1.2 JetBrains IDE 安装

# 1.2.1 JetBrains IDE下载

去官网下载安装包即可,安装过程没什么太值得注意的地方,跟着提示一路next即可。

# 1.2.1 JetBrains IDE破解

当下最稳定的破解方案是通过jar包无限重置试用

方案一:使用永久破解jar包(已失效,进去之后会被吊销,可用于试用过期用户临时进入,然后使用无限重置)

  • Step1:Evaluate for free——在打开项目的那个界面把BetterIntelliJ-1.15.jar拖进去——重启IDE
  • Step2:Help——Register...——Add New License——把key.txt中的激活码复制上去,即可激活到2099年

方案二:使用无限重置试用jar包(目前可用,只要JetBrains有试用就能一直白嫖)

  • Step1:Evaluate for free——在打开项目的那个界面把ide-eval-resetter-2.1.9.jar拖进去——重启IDE

  • Step2:Help——Eval Reset——勾选Auto reset before per restart——点击Reset

    无限试用

    注:如果是通过永久破解jar包打开的,请快速完成上述设置,然后移除激活到2099的那个许可证,选择试用。

# 1.2.2 JetBrains IDE汉化

不太建议对IDE进行汉化,但如果英文太差的话可以先汉化用着。

resources_zh_CN_JetBrains_2020.jar放入安装目录的lib目录,重启IDE即可。

# 1.3 JetBrains IDE 基本设置

# 1.3.1 同步 JetBrains IDE 设置

原因:IDE配置按照自己的习惯设置好后,如果需要在别的电脑上安装该软件,可以使用同步或者导入导出功能实现IDE设置

同步:File——Manage IDE Settings——IDE Settings Sync(需要JetBrains Account),然后点击IDE右下角的小云朵进行同步。

导入导出:File——Manage IDE Settings——Import Settings... / Export Settings...

# 1.3.2 JetBrains IDE 快捷键风格

IDE 的默认快捷键风格是 Windows 的,但我个人用惯了 Eclipse 的快捷键。可以通过修改快捷键风格的设置去使用其他编辑器的快捷键风格,你也可以自定义快捷键。(注:IDEA和WebStorm本身就有Eclipse的快捷键风格,Pycharm里没有但可以通过安装插件去支持)

在“File——Settings——Keymap”选择快捷键风格,Eclipse风格的常用快捷键如下:

[1] 复制 Ctrl+C      粘贴 Ctrl+V       剪切 Ctrl+X      撤销 Ctrl+Z      重做 Ctrl+Y
[2] Ctrl+/ 行注释,再按则取消注释(可以批量选择多行)    Ctrl + Shift + / 块注释
[3] Ctrl+F 文件内查找替换     Ctrl+Shift+R 根据文件名查找文件    Crtl+H 全局查找代码    Ctrl+Shift+H 全局替换代码
[4] Ctrl+D 删除当前行(可以批量选择多行)
[5] Tab 往右缩进(可以批量选择多行)        Shift+Tab 往左缩进(可以批量选择多行)
[6] Ctrl+方法名/类名...  跳转到对应方法/类
[7] Ctrl+Shift+U 切换大小写 
[8] Ctrl+Shift+F9 编译代码
[9] Ctrl+END 跳到文件末尾  Ctrl+HOME 跳到文件开头   Ctrl+L 跳转到指定行
[10] Ctrl+O 查找一个类里的所有方法
[11] Ctrl+Alt+L 快速格式化选中代码   Ctrl+Alt+Shift+L 快速格式化整个文件的代码
[12] Alt+Insert 选中代码,可以快速生成构造函数、setter和getter、重写父类的方法等
[13] Ctrl+Alt+T 选中代码,可以快速生成try-catch、if、for、while等语句
[14] Ctrl+Alt+Down(下方向键) 选中代码,快速复制本行内容到下一行。
[15] Ctrl+Shift+J 选中代码,将代码合并至一行。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

其他常见问题:

  • 字符间距突然变大(Shift +空格)
  • 进入/退出插入模式(键盘上的Insert键)
  • 输入中文变成繁体字:Crtl+Shift+F快捷键与输入法快捷键冲突
  • 控制台无法使用Ctrl+F搜索的问题:File——Settings——Keymap——Main menu——Edit——Find——Find——绑定快捷键
  • 显示类中所有方法:Alt+7快捷键(或者View——Tool Windows——Structure)

# 1.3.3 JetBrains IDE 配置版本控制

[1] 配置Git及Github

Step1:配置Git:File——Settings——Version Control——Git——选择git安装目录下的cmd\git.exe,配置成功后显示版本号

Step2:配置Github:File——Settings——Version Control——GitHub——右边“+”——输入用户名和密码

从Git中检出:VCS——Checkout from Version Control——Git——在URL处填写Github存储库地址,然后添加检出目录即可。检出完项目后,就可以点击项目右键,进行Git的提交、更新等操作了。

[2] 配置SVN

Step1:安装TortoiseSVN客户端,一定要勾选上command line client tools,否则下一步在IDE上集成SVN的时候会找不到 svn.exe

  • 如果之前安装时忘记勾选了的话,安装包重新运行,选择modify,然后勾选command line client tools项就行了。

Step2:File——Settings——Version Control——Subversion——在最上面的框里填入SVN客户端安装目录下的bin\svn.exe,重启IDE

从SVN中检出:VCS——Checkout from Version Control——Subversion——点上面的“+”——输入路径后添加检出目录即可。检出完项目后,就可以点击项目右键,进行SVN的提交、更新等操作了。

# 1.3.4 破解Github Copilot插件

项目描述:白嫖破解Github Copilot插件,利用AI补全代码。

项目地址:https://github.com/pengzhile/cocopilot (opens new window)

Step1:使用 JetBrains 全家桶IDE,安装 Github Copilot 插件。

Step2:拉取代码执行破解脚本,看到done. please restart your ide.表示成功,重启IDE即可。

$ git clone https://github.com/pengzhile/cocopilot.git
$ cd cocopilot && ./cocopilot.sh
1
2

插件的具体使用相见:Github Copilot使用指南 (opens new window)

# 1.3.5 JetBrains IDE 常见问题

[1] 编码设置

  • File -> Settings -> Editor -> File Encoding——三个都选择uft-8,然后重启IDE

[2] 切换暗黑模式

  • File——Settings——Appearance & Behavior——Appearance——Theme选择为Darcula

[3] 设置背景图片

  • File——Settings——Appearance & Behavior——Appearance——点击Ul Options下的Background Image...按钮——在弹出页里设置好图片路径和参数即可

[4] 设置新窗口打开项目

  • File——Settings——Appearance & Behavior——System Settings——“Open project in”选择“New window”
  • 注:如果不设置在新窗口打开项目,而是在本窗口打开,那么当你想要同时打开多个项目时,打开了后面的就会把前面的给自动关掉。

[5] 代理设置

  • File——Settings——Appearance & Behavior—System Settings——HTTP Proxy
  • 选择Manual proxy configuration及HTTP,填写Host name(127.0.0.1)及Port number(端口号)

[6] 设置打开多个文件显示在多行Tab上

  • File——settings——Editor——General——Editor tabs——不勾选show tabs in single row

[7] 左侧Debug工具栏缺失问题

情景缘由:控制台曾不小心碰到了设置项,导致该工具栏被隐藏,影响到开发调试。

解决办法:在右侧设置按钮处,勾选上“Show Toolbar”。

Debug工具栏缺失问题

[8] 需要输入命令行参数时如何调试

选择 Run -> Edit Configurations,然后在 Parameters 中填入需要设置的命令行参数,之后以 Debug 方式启动即可。

# 1.4 IDEA 使用指南

# 1.4.1 IDEA自定义注释风格

[1] 生成类注释

新建Java类的时候会自动附带以下信息

文件——设置——编辑器——文件和代码模板——Class

#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
#parse("File Header.java")
/**
* @Program: ${PROJECT_NAME}
* @Description: ${description}
* @Author: Author
* @Create: ${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINUTE}
**/
public class ${NAME} {
}
1
2
3
4
5
6
7
8
9
10

[2] 生成方法注释

Step1:文件——设置——编辑器——代码模板——点击右边加号为自己添加一个Templates Group(我将它起名为Annotation template)——然后选中自己的Group再次点击加号添加Live Templates

Step2:缩写处填写(这样在代码编写过程中,输入/**,再按Tab就会填充方法注释),模板文本填写如下:

**
* @Description: $description$
* @Param: $params$
* @Return: $returns$
* @Author: Author
* @Date: $date$
*/
1
2
3
4
5
6
7

Step3:点开右侧的“编辑变量”——在表达式那栏选择填充方法,params选择methodParameters(),returns选择methodReturnType(),date选择date()

[3] 修改默认的单行注释的格式

默认的单行注释是注释到开头,不够美观,以下修改会让注释也跟着缩进

文件——设置——编辑器——Code Style——Java——代码生成——取消勾选“行注释在第一列”

# 1.4.2 IDEA插件推荐

[1] Codota:人工智能的代码提示和补全的插件
[2] JRebel and XRebel for IntelliJ:项目热部署的插件(收费,可破解)
[3] Python:用于支持在IDEA里开发Python项目的插件
[4] Stackoverflow:从Stackoverflow搜索项目报错
[5] Translation:翻译插件,用于给类、方法、变量英文命名
[6] lombok:以简单的注解形式来简化java代码(从2020.3的IDEA开始,lombok插件将默认集成)
[7] Alibaba Java Coding Guidelines:用于检测代码规范的插件
[8] .ignore:版本控制忽略文件的生成插件
[9] Grep console:自定义日志颜色,使IDEA控制台可以彩色显示各种级别的log,协助定位错误
[10] Rainbow Brackets:彩色括号,协助理清层级关系
[11] Key promoter:是IDEA的快捷键提示插件,会统计你鼠标点击某个功能的次数,提示你应该用什么快捷键
[12] Tabnine:人工智能的代码提示和补全的插件
[13] VCSLabel:显示每个文件的最后提交时间和提交人。
[14] A8Translate: 选词翻译插件,快捷键为Option/Alt + T
[15] Chinese (Simplified) Language Pack:中文语言包,可以汉化IDE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

注意事项:

[1] 如果检索插件时出现Marketplace plugins are not loaded. Check the internet connection and refresh问题,请检查一下你的代理设置(齿轮按钮——HTTP Proxy Setting..)

问题情景:某次打开IDEA搜索插件时遇到了该问题,无法检索插件,而网络却是正常的。
问题缘由:我之前给IDEA的插件配置了代理,端口设为1080,而SSR在某次开机时遇到了1080端口被占用的问题,遂将其改为了1081。
解决方法:将SSR的代理设置与IDEA的代理设置统一即可。
1
2
3

[2] 如果想要安装旧版本插件,可以从Github上找到旧版发布包,从磁盘安装插件。

Settings——Plugins——点击Installed右侧的设置按钮——Install Plugin from Disk...

# 1.4.3 IDEA智能代码补全

[1] 快速生成main方法

  • 输入“psvm”然后按Tab键,会生成main方法语句。

[2] 快速打印输出

  • 输入“sout”然后按Tab键,会生成标准打印输出语句。

[3] 快速定义局部变量及成员变量

  • 在字符串或者数字后面输入“ .var”然后按Tab键,会自动推断并快速定义一个局部变量,不过它是 final 类型的。
  • 在字符串或者数字后面输入“ .field”然后按Tab键,可以快速定义一个成员变量,如果当前方法是静态的,那生成的变量也是静态的。

[4] 快速格式化字符串

  • 在字符串后面输入“.format”然后按Tab键,会自动生成 String.format语句。

[5] 快速遍历集合

  • 在集合后面输入“.fori”然后按Tab键,会自动生成for循环语句。

[6] 快速返回值

  • 在字符串或者数字后面输入“.return”,可以让当前值快速返回。

# 1.4.4 修改JVM参数

第一种打开方式:Help——Edit Custom VM Options...——修改Xmx和Xms的参数

第二种打开方式:用Everything搜索vmoptions,我的是在C:\Users\xxx\AppData\Roaming\JetBrains\IntelliJIdea2020.2目录下

设置JVM内存的参数有四个:

-Xmx Java Heap最大值,默认为物理内存的四分之一
-Xms Java Heap初始值,最好将-Xmx和-Xms设置为相同值,避免垃圾回收时由于差值造成时间开销增大
-Xmn Java Heap Young区大小,最好保留默认值
-Xss 每个线程Stack的大小,最好保留默认值
1
2
3
4

IDE默认设置的Xmx和Xms仅有128M,内存分配的太少,导致启动非常缓慢,建议将其扩充。

-Xms2048m
-Xmx2048m
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-XX:CICompilerCount=2
-Dsun.io.useCanonPrefixCache=false
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-Djdk.attach.allowAttachSelf=true
-Dkotlinx.coroutines.debug=off
-Djdk.module.illegalAccess.silent=true
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 1.4.5 取消控制台的行数限制

情景缘由:ES的报错代码一次性太多,超出了控制台的显示上限,查看不到有效的报错信息。

解决办法:IDEA 取消了控制台行数设置选项,只能通过修改/安装目录/bin/idea.properties配置文件进行更改。

具体操作:以MacOS为例

  • Step1:打开 Finder 通过 Application 找到 IDEA 应用,右键点击“显示包内容”。

  • Step2:修改/安装目录/bin/idea.properties配置文件,将 idea.cycle.buffer.size 设置为 disabled

    #---------------------------------------------------------------------
    # This option controls console cyclic buffer: keeps the console output size not higher than the specified buffer size (KiB).
    # Older lines are deleted. In order to disable cycle buffer use idea.cycle.buffer.size=disabled
    #---------------------------------------------------------------------
    #idea.cycle.buffer.size=1024
    idea.cycle.buffer.size=disabled
    
    1
    2
    3
    4
    5
    6
  • Step3:重启IDEA即可(如果还不好使的话,可能是插件影响了,比如 Grep console,卸载掉就好了)

# 1.4.6 在IDEA里运行非Java的项目

[1] 在IDEA运行Python项目

  • File——Settings——Plugins——Marketplace——搜索Python——Installed

  • 重启Intellij Idea,File->New->Project,可以看到左边的项目类型中多了一个python,直接Next即可,如果你的电脑中已经安装过了python的环境,它会自动检测SDK,然后就可以运行Python程序了

[2] 在IDEA运行Vue项目

  • File——Settings——Languages&Frameworks ——JavaScript:修改JavaScript language version为ECMAScript 6
  • Run - Edit Configurations...:点击加号,选择npm,Name为Run,package.json选择你工程中的package.json,Command为run,Scripts为serve,然后就可以直接在IDEA中运行了。

# 1.5 PyCharm 使用指南

# 1.5.1 PyCharm自定义注释风格

[1] 生成类注释

新建Python文件的时候会自动附带以下信息

文件——设置——编辑器——文件和代码模板——Python Script

# -*- coding: utf-8 -*-
"""
# Program: ${PROJECT_NAME}
# Description: ${description}
# Author: Author
# Create: ${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINUTE}
"""
1
2
3
4
5
6
7

[2] 生成方法注释

Step1:文件——设置——编辑器——代码模板——点击右边加号为自己添加一个Templates Group(我将它起名为Annotation template)——然后选中自己的Group再次点击加号添加Live Templates

Step2:缩写处填写(这样在代码编写过程中,输入"",再按Tab就会填充方法注释),模板文本填写如下:

"""
# Description: $description$
# Author: Author
# Date: $date$
"""
1
2
3
4
5

Step3:点开右侧的“编辑变量”——在表达式那栏选择填充方法,date选择date()

# 1.5.2 Pycharm插件推荐

[1] Translation:翻译插件,用于英文命名
[2] .ignore:版本控制忽略文件的生成插件
[3] Rainbow Brackets:彩色括号,协助理清层级关系
[4] Eclipse Keymap:支持Eclipse快捷键风格
[5] Tabnine:人工智能的代码提示和补全的插件
1
2
3
4
5

# 1.5.3 自动添加文件头注释

创建Python文件自动加上# -*- coding: utf-8 -*-可通过如下配置来实现:

Settings——Editor——File and Code Templates——选择Python Script,输入:# -*- coding: utf-8 -*-——Apply

# 1.6 IDEA项目热部署

# 1.6.1 热部署简介

需求情景:IDEA原生是不支持热部署的,运行公司内部框架的项目时,只要对代码进行过修改就需要重启,十分浪费时间。热部署可以使的修改代码后,无须重启服务器,就可以加载更改的代码,为测试和修改提供了方便。

热部署的方式:在IDEA中实现热部署的方式主要有以下4种,各有利弊。目前IDEA热部署最好的解决方案就是使用JRebel插件的方式。

  • 第1种:修改服务器配置,使得IDEA窗口失去焦点时,更新类和资源
  • 第2种:使用springloaded jar包
  • 第3种:使用spring-boot-devtools提供的开发者工具
  • 第4种:使用Jrebel插件实现热部署(该插件收费,可破解)

# 1.6.2 修改Tomcat服务器配置实现热部署

有的项目无法使用Jrebel插件实现热部署,可以尝试修改Tomcat的配置去实现。

On 'Update' action:Update classes and resources
On frame deactivation:Update resources
1
2

# 1.6.3 借助Devtools实现Springboot的热部署

Step1:在pom里添加如下依赖:

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
</dependency>
1
2
3
4
5

Step2: File-> Settings -> Build,Execution,Deplyment-> Compiler,选中打勾 Build project automatically

Step3:组合键:Shift+Ctrl+Alt+/ ,选择 Registry ,选中打勾 compiler.automake.allow.when.app.running

# 1.6.4 使用Jrebel插件实现热部署

[1] 服务器搭建ReverseProxy服务

JRebel是一款非常好用的Springboot热部署插件,但它是付费的,我们可以通过 ReverseProxy (opens new window) 服务进行破解。

这个反向代理需要一直开启着,关了就会出现连不上license server的问题,因此不建议在本机搭建,在自己VPS上搭建更为方便使用。

1)在VPS搭建ReverseProxy服务

Step1:去lanyus大佬的Github下载自己VPS对应的工具:http://github.com/ilanyu/ReverseProxy/releases/tag/v1.4 (opens new window),上传到服务器的/root目录,并将文件权限改为777。

$ wget https://github.com/ilanyu/ReverseProxy/releases/download/v1.4/ReverseProxy_linux_amd64
$ chmod 777 ReverseProxy_linux_amd64 
1
2

Step2:输入以下命令运行该代理工具:

$ ./ReverseProxy_linux_amd64
1

参数说明:

Usage of ./ReverseProxy_linux_amd64:
  -ip string
        reverse proxy addr server ip
  -l string
        listen on ip:port (default "0.0.0.0:8888")
  -r string
        reverse proxy addr (default "http://idea.lanyus.com:80")
1
2
3
4
5
6
7

ReverseProxy

在Jrebel的激活URL处填写:http://{VPS的IP地址}:8888/{GUID}即可成功激活。下面是一些优化部署,建议加上但不强制。

2)配置开机自启、HTTPS及反向代理

使用 crontab 计划任务配置开机自启,使用Nginx配置反向代理并开启HTTPS,在Jrebel的激活URL处填写:https://domain.com/{GUID}即可成功激活。

[2] 本地配置Jrebel插件

Jrebel插件安装:

  • File——Settings——Plugins,搜索安装“JRebel and XRebel for IntelliJ”插件

Jrebel插件破解:

Step1:生成一个GUID:在线生成GUID工具 (opens new window)

  • 例如:54ef0915-dab4-4b9d-aab3-764090650207

Step2:根据反向代理服务器地址拼接激活地址

  • 这里给出一个别人分享的服务:https://jrebel.qekang.com/(如果服务停了,你的激活也会失效,不保证能用多久)

  • 拼接起来就是:https://jrebel.qekang.com/54ef0915-dab4-4b9d-aab3-764090650207

  • 如果想稳定使用的话,建议将反向服务搭建在自己的VPS上,详见我的另一篇博客:VPS基本部署环境的搭建与配置 (opens new window)

Step3:File——Settings——JRebel & XRebel——Activate,Team URL填上述拼接的激活地址,邮箱随便掰。

Jrebel插件实现热部署-1

激活成功后如下所示:

Jrebel插件实现热部署-2

Jrebel插件使用:

  • 对项目进行热部署的设置:View > Tool Windows > JRebel 中打开JRebel的视图,勾选上需要启动热部署的项目

    另注:安装完Jrebel后在顶上会出现两个按钮(Rebel run和Rebel debug),运行项目时使用它们来替代原有的run和debug

# 1.7 Java和Python的远程调试

# 1.7.1 Jar包远程Debug调试

需求情景:部署的Jar包出现了问题需要线上排查(本地复现不出来问题),希望在IDEA里对Jar包打断点进行远程Debug调试。

实现方式:以 -Xdebug 的方式启动jar包,然后再在IDEA里配置一下即可。

Step1:以如下方式对线上的jar包进行启动

$ java -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n -jar test.jar
1

注:将常规启动的java -jar test.jar换成上述命令,这里监听启动5005端口,用于远程连接(与程序的端口是没有关系的)。

Step2:在IDEA上配置远程调试

Edit Configurations...——点击“+”,选择Remote JVM Debug——Host处填写线上的IP,端口和命令参数使用默认的,Use module classpath选择项目模块

连接成功后,点击 Debug 按钮进行启动,常规的打断点进行调试即可。

远程对Jar进行Debug

# 1.7.2 Python直连服务器开发调试

需求情景:通常开发项目是在本地开发,然后再在服务器上部署,很是繁琐。如果项目允许直连服务器进行开发调试的话,可以直连服务器,这样本地修改直接同步到服务器,可以带来很多方便。

Step1:Tools->Deployment->Configuration,新建一个Sftp,在Connection处填写服务器相关信息,在Mappings中填写本地项目的路径以及服务器上的路径,对二者进行映射,Web server 和 Excluded Paths 暂时不做考虑。

JetBrains直连服务器-1

JetBrains直连服务器-2

Step2:Tools->Deployment->勾选Automatic Upload (always),这样每次修改代码时,都会将更改同步到服务器上。

除此之外,我们还可以直接连接服务器的环境进行开发和调试。

Step3:File->Settings->Python Interpreter->点击齿轮处的Add->选择SSH Interpreter->填写服务器连接信息

JetBrains直连服务器-3

然后使用whereis python命令查看服务器上的python安装路径,填写服务器的Python安装路径及项目映射信息。

JetBrains直连服务器-4

# 2. Java开发环境

# 2.1 JDK环境

# 2.1.1 jdk安装与环境变量配置

[1] jdk下载

官网:https://www.oracle.com/java/technologies/javase-downloads.html (opens new window)

[2] 配置系统变量

此电脑——右键“属性”——高级系统设置——环境变量(在下面系统变量那栏进行配置)

[1] 新建系统变量JAVA_HOME:填写JDK安装目录(填到..\jdk)  
[2] 新建系统变量CLASSPATH:%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 
[3] 系统变量PATH后面继续添加变量值:%JAVA_HOME%\bin及%JAVA_HOME%\jre\bin
1
2
3

[3] 验证

在cmd分别输入java -versionjavac -version命令,出现版本号则配置没有问题。

注:修改好的环境变量,需要重新打开新的cmd窗口!!

# 2.1.2 jdk多版本共存问题

有时可能需要在电脑上安装多个版本的jdk,为此,可采取以下方式进行配置

[1] 配置JAVA_HOME

Step1:配置子JAVA_HOME

JAVA_HOME8:D:\JDK\jdk-8u144
JAVA_HOME6:D:\JDK\jdk1.6.0_45_x86
1
2

Step2:配置总的JAVA_HOME

JAVA_HOME:%JAVA_HOME6%   [用1.8的时候就把这里改为%JAVA_HOME8%]
1

[2] 配置CLASS_PATH

CLASS_PATH:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
1

[3] 配置PATH

PATH:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
1

[4] 检查配置是否成功

java -version
javac -version
1
2

# 2.1.3 IDEA配置JDK环境

File——Project Structure——SDKs——设置本地安装的jdk

# 2.2 Tomcat环境

# 2.2.1 Tomcat基本配置

[1] 下载Tomcat

  • 官网:http://tomcat.apache.org/ (opens new window)(我下载的版本是apache-tomcat-9.0.36-windows-x64.zip)
  • 下载完之后解压即可。找到自己解压目录,打开文件夹下面的/bin目录,其中startup.bat是启动tomcat,shutdown.bat是关闭tomcat

[2] 配置环境变量

此电脑——右键“属性”——高级系统设置——环境变量(在下面系统变量那栏进行配置)

CATALINA_HOME:D:\Tomcat\apache-tomcat-9.0.36;
CLASSPATH:%CATALINA_HOME%\lib\servlet-api.jar;
Path:%CATALINA_HOME%\bin;%CATALINA_HOME%\lib;
1
2
3

验证:在cmd里输入startup启动tomcat,然后在浏览器输入http://127.0.0.1:8080/,若出现tomcat界面则配置成功。

# 2.2.2 在IDEA上配置Tomcat

[1] Edit Configurations,点击“+”号,然后找到Tomcat Server,选择Local,把Tomcat添加到Application server

在IDEA上配置Tomcat-1

[2] 打开“Deployment”选项卡,点击右侧“+”号,选择Artifact...,底下的Application context即为网页访问路径(此处以/test为例)

在IDEA上配置Tomcat-2

# 2.2.3 在IDEA上创建一个测试项目

[1] File——New——Project——选择Java模块,勾选上Web Application和Create web.xml,然后next——创建一个名为test的项目

[2] 修改index.jsp的代码如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>test tomcat</title>
  </head>
  <body>
  Hello world!
  </body>
</html>
1
2
3
4
5
6
7
8
9

[3] 点击右上角Tomcat旁边的“三角形按钮”,运行成功后自动跳转到网页(即:http://localhost:8080/test/

# 2.2.4 Tomcat使用过程中的常见问题

[1] 解决控制台中文乱码“淇℃伅”问题

到tomcat安装目录下的conf文件夹,打开logging.properties文件,把其中的utf-8全部改为GBK

[2] 解决Address localhost:1099 is already in use问题

问题分析:这是端口号被占用了,已经有其他应用正在使用这个端口号

问题解决:此法适用于所有端口被占用的情况

  • Step1:通过端口找到PID,在cmd里输入netstat -ano | find "1099",输出的最右边数字就是PID
  • Step2:打开任务管理器,在详细信息里寻找该PID对应的进程,选中该进程右键,结束任务

[3] IDEA添加Tomcat Deployment时没有Artifact...选项的问题

问题解决:项目结构——Artifacts——“+”号——Web Application: Exploded——From Modules...——选中你的项目

注:如果Web Application: Exploded处没有From Modules...,则需把web.xml配置到项目里

[4] Intellij IDEA Tomcat 启动报错, Unable to ping server at localhost:1099

问题解决:查看一下你的Tomcat版本和jdk版本是否匹配(用Tomcat9时,jdk必须1.8以上)

# 2.3 Maven环境

# 2.3.1 Maven安装及基本设置

[1] maven下载安装

Step1:Apache Maven官网 (opens new window)(建议选择比所使用的IDEA更晚发行的版本下载,原因下文会提及)

Step2:将下载的apache-maven-3.6.0-bin.zip移动到文件夹内解压

注:如果要下载旧版的Maven,从 这里 (opens new window) 下载。

[2] maven环境变量配置

Step1:右键“计算机”,选择“属性”,之后点击“高级系统设置”,点击“环境变量”

Step2:环境变量配置

新建系统变量 MAVEN_HOME     变量值:D:\Maven\apache-maven-3.6.0
编辑系统变量 Path           添加变量值:;%MAVEN_HOME%\bin
1
2

[3] maven环境验证

在cmd界面输入:mvn --version,出现版本号则安装成功。

# 2.3.2 将Maven整合进IDEA

File——Settings——Build, Execution, Deployment——Build Tools——Maven——Maven home directory、User settings file、Local repoository(自己新建),这三项选中自己安装的那个。

将Maven整合进IDEA

# 2.3.3 Maven使用过程中的常见问题

[1] maven库下载依赖包速度慢的问题

问题说明:在pom.xml中添加maven依赖包时,下载非常慢

方法一:更换国内镜像

  • 具体操作:右键项目选中maven选项,然后选择“open settings.xml”或者 “create settings.xml”,然后把如下代码粘贴进去,重启IDEA即可。

    <?xml version="1.0" encoding="UTF-8"?>
    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    
        <!--
          仓库的优先级:本地仓库 > settings 中的 profile > pom 中的 repository > mirror
        -->
    
        <mirrors>
            <mirror>
                <id>aliyun-maven</id>
                <name>阿里云公共仓库</name>
    
                <!-- 只镜像中央仓库 -->
                <mirrorOf>central</mirrorOf>
                <url>https://maven.aliyun.com/repository/central</url>
    
                <!-- 镜像所有仓库 -->
                <!--<mirrorOf>*</mirrorOf>-->
                <!--<url>https://maven.aliyun.com/repository/public</url>-->
            </mirror>
        </mirrors>
    
        <profiles>
            <profile>
                <id>dev</id>
                <activation>
                    <!-- 默认激活当前配置 -->
                    <activeByDefault>true</activeByDefault>
                    <jdk>1.8</jdk>
                </activation>
                <properties>
                    <maven.compiler.source>1.8</maven.compiler.source>
                    <maven.compiler.target>1.8</maven.compiler.target>
                    <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
                </properties>
            </profile>
        </profiles>
    
        <activeProfiles>
            <!-- 指定激活配置 -->
            <activeProfile>dev</activeProfile>
        </activeProfiles>
    
    </settings>
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46

附:其他国内镜像源

   <mirror>
     <id>huaweicloud</id>
      <name>华为云 maven</name>
      <mirrorOf>*</mirrorOf>
      <url>https://mirrors.huaweicloud.com/repository/maven/</url>
   </mirror>

   <mirror>
    <id>nexus-tencentyun</id>
     <name>腾讯云 maven</name>
    <mirrorOf>*</mirrorOf>
    <url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
   </mirror>
1
2
3
4
5
6
7
8
9
10
11
12
13

方法二:添加翻墙代理

  • File——Settings——Build, Execution, Deployment——Build Tools——Maven——Importing——VM options for Importer,添加如下配置(端口号以代理软件里的配置为准)

    -DproxySet=true -DproxyHost=127.0.0.1 -DproxyPort=1080
    
    1

[2] pom.xml里spring-boot-maven-plugin爆红问题

该问题有多种可能导致的原因,都试一下吧。

  • 第一种可能:给它加上版本号,例如:<version>2.2.2.RELEASE</version>
  • 第二种可能:检查settings.xml是否配置正确。
  • 第三种可能:将Maven依赖仓库的地址使用IDEA默认的C:\Users\xxx\.m2\repository

注:看起来第三种可能最不靠谱,我他妈都被它整崩溃了,抱着死马当活马医的心态试了一下,没想到真的解决了!!!

[3] IDEA右侧的Maven框消失问题

  • Step1:打开项目的pom文件
  • Step2:鼠标右键选择 Add as Maven Project

[4] Maven和Intellij IDEA的版本不兼容的问题

  • 问题描述:Maven拉取依赖库时报错:Unable to import Maven project,See logs for details,点开Show Log in Explorer显示如下:

    java.lang.RuntimeException: com.google.inject.CreationException: Unable to create injector, see the following errors:
    
    1) No implementation for org.apache.maven.model.path.PathTranslator was bound.
      while locating org.apache.maven.model.path.PathTranslator
        for field at org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator.pathTranslator(Unknown Source)
      at org.codehaus.plexus.DefaultPlexusContainer$1.configure(DefaultPlexusContainer.java:350)
    
    2) No implementation for org.apache.maven.model.path.UrlNormalizer was bound.
      while locating org.apache.maven.model.path.UrlNormalizer
        for field at org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator.urlNormalizer(Unknown Source)
      at org.codehaus.plexus.DefaultPlexusContainer$1.configure(DefaultPlexusContainer.java:350)
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
  • 解决办法:使用较低版本的Maven或者使用较高版本的IDEA(如果使用的是破解版IDEA,最好不要选择升级,那样还要重新破解,建议Maven降级至比IDEA更早的版本并重新配置环境变量)

[5] IDEA的Maven一直卡在Resolving Maven dependencies的问题

  • 问题描述:在Reimpot All Maven Porjects时, 如果项目过大, maven依赖过多, 会直接卡在Resolving Maven dependencies这步

  • 解决办法:修改maven Importing的jvm参数, 默认为700多, 直接修改成-Xms1024m -Xmx2048m

    Maven一直卡在Resolving-Maven-dependencies

[6] 解决maven编译错误:程序包com.sun.xml.internal.ws.spi不存在

当maven项目里面有用到JDK内部的一些类、接口的时候,用maven编译一般会出现该类错误。

解决办法:添加maven-compiler-plugin插件,并且配置compilerArguments,再编译打包,就没有问题了。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <compilerArguments>
            <bootclasspath>${JAVA_HOME}/jre/lib/rt.jar</bootclasspath>
        </compilerArguments>
    </configuration>
</plugin>
1
2
3
4
5
6
7
8
9
10
11

[7] IDEA无法修改maven home directory问题

问题描述:无法在IDEA里将maven home directory设置为自定义地址,虽然显示保存成功,但修改后再打开还是原来的。

解决办法:可以将.mvn/wrapper/maven-wrapper.properties删掉,之后就能设置为自己的地址。

[8] 某版本的spring-boot-starter-parent无法拉取问题

问题描述:出现某版本spring-boot-starter-parent无法拉取的问题,有些版本的可以正常拉取,可能是源的问题。

解决办法:我一般选择更换一个版本,不过更换后可能需要补充一些依赖包。

[9] 正常代码引用出现爆红问题

问题描述:拉取了确定可以正常运行的项目后,import子模块代码的地方出现爆红,无法编译,可那些代码的确存在,可能是缓存问题。

解决办法:清除缓存并重新启动IDEA,File——Invalidate Caches/ Restart...

[10] 依赖出现dependency cannot have character爆红问题

问题描述:依赖看起来正常,但出现dependency cannot have character爆红问题。

解决办法:存在特殊字符,删掉空白重新加一下就好了。

[11] 拉取依赖时报错 pom.part.lock (没有那个文件或目录)

在MacOS或Linux上导包可能会遇到该问题,问题所在是文件夹权限问题,把repository赋权为777即可解决。

[12] 拉取依赖时个别依赖拉取失败

问题描述:[FATAL] Non-parseable POM /usr/local/maven/apache-maven-3.8.5/repo/io/r2dbc/r2dbc-bom/Arabba-SR10/r2dbc-bom-Arabba-SR10.pom: unexpected markup <!d (position: START_DOCUMENT seen \n<!d... @2:4) @ /usr/local/maven/apache-maven-3.8.5/repo/io/r2dbc/r2dbc-bom/Arabba-SR10/r2dbc-bom-Arabba-SR10.pom, line 2, column 4

问题排查:找到报错信息所指的.pom文件,将后缀改成.html,然后打开即可查看远程仓库服务器给你发了啥,我点开之后看到了503信息(503 Service is under scheduled maintenance. Please check back shortly.),说明是远程仓库服务器挂了,换个源即可解决该问题。

[13] IDEA的maven管理中存在灰色模块

问题原因:可能是由于删除掉了已创建好的子模块项目,随后又重新创建该子模块项目造成的。

解决办法:Settings——Maven——Ignored Files——把对应灰色模块的勾去掉即可

# 2.3.4 非Maven项目的Jar包获取

# 2.3.5 Maven项目引入本地jar包

需求情景:有些jar包可能没有上传Maven,可以本地引入使用。

本地jar包可在pom.xml中像这样添加依赖:

        <!--similarity 语义相似度工具包 https://github.com/shibing624/similarity-->
        <dependency>
            <groupId>local.dependency</groupId>
            <artifactId>similarity</artifactId>
            <version>1.1.3</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/lib/similarity-1.1.3-jar-with-dependencies.jar</systemPath>
        </dependency>
1
2
3
4
5
6
7
8

解释说明:

groupId:组字,可以随意命名
artifactid:jar包名字
version:版本
scope:使用system,需要添加systemPath的属性来定义路径
systemPath:本地jar包路径
1
2
3
4
5

然后在spring-boot-maven-plugin 配置上 <includeSystemScope>true</includeSystemScope>即可

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <includeSystemScope>true</includeSystemScope>
                </configuration>
            </plugin>
        </plugins>
    </build>
1
2
3
4
5
6
7
8
9
10
11

# 3. Python开发环境

# 3.1 安装Python解释器

  • 官网下载:Python (opens new window) (验证:在cmd输入python)
  • 注意事项:安装时注意勾选:Add Python 3.7 to PATH (我当时下载的版本是3.7.1)

# 3.2 pip的换源及基本使用

# 3.2.1 pip的换源及升级

[1] pip换源

国外的源下载速度太慢,而且经常出现下载后安装出错问题,所以把pip安装源替换成国内镜像,常见的源有如下:

阿里云:http://mirrors.aliyun.com/pypi/simple/
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/
1
2

总的来说,阿里云更快一些,且每隔10分钟会同步更新所有官方源的文件。在终端中输入以下命令后,pip就换源了

pip config set global.index-url http://mirrors.aliyun.com/pypi/simple/
pip config set install.trusted-host mirrors.aliyun.com
1
2

说明:写第2行的原因是这不是一个https路径,不受信任,如果是用清华源就不用加。可以输入pip config list命令查看pip的配置。如果只是临时使用在原pip的命令后面加上-i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com即可。

[2] 升级pip

  • 在cmd输入:python -m pip install --upgrade pip

# 3.2.2 使用pip安装、升级第三方库

1)pip常用命令

[1] pip安装包

pip install 安装包名
1

如果安装不了或者速度太慢,可以尝试挂代理进行下载:

pip install 安装包名 --proxy=代理IP:代理端口号
1

注:一些比较难安装的依赖包(比如需要 c++ 环境去编译的)可以使用 whl 进行安装,注意这个文件的系统类型、python版本要一致,这个whl文件也不能改名。

[2] pip查看包是否已安装

pip show --files 安装包名
1

[3] pip检查安装了哪些包

pip list
1

[4] pip检查哪些包需要更新

pip list --outdated
1

[5] pip升级包

pip install --upgrade 要升级的包名
1

[6] pip卸载包

pip uninstall 要卸载的包名
1

[7] pip使用说明

pip --help
1

[8] 清理pip缓存

pip cache purge
1

2)更新过期的第三方库

[1] 方法一:使用pip命令手动更新

pip list --outdated #列出所有过期的库
pip install --upgrade 库名 #更新过期的库
1
2

[2] 方法二:使用 pip-view (opens new window) 项目批量更新

pip install pip-review
pip-review --local --interactive
1
2

3)导入导出所有的第三方库依赖

pip freeze > requirements.txt  导出第三方库依赖至requirements.txt文件  
pip install -r requirements.txt  从requirements.txt文件安装第三方库依赖
1
2

4)导出本项目使用到的第三方库依赖

使用pipreqs库导出本项目的依赖,生成的也是requirements.txt文件。

$ pip install pipreqs
$ cd /root/test-project          // 切换到项目根目录
$ pipreqs ./ --encoding=utf8     // 需要带上编码的指定,否则会报GBK编码错误
1
2
3

注意这里还有个坑:

requests.exceptions.SSLError: HTTPSConnectionPool(host='pypi.python.org', port=443): Max retries exceeded with url: /pypi/cv2/json (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1125)')))
1

这是因为本机开了翻墙代理导致的,把代理软件关了就好了。

# 3.3 conda的安装及使用

Conda 是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。 Conda 是为 Python 程序创建的,适用于 Linux,OS X 和Windows,也可以打包和分发其他软件。

# 3.3.1 conda的安装

conda官方下载:https://docs.conda.io/en/latest/miniconda.html (opens new window)

注:安装时记得勾选自动配置环境变量,否则就要自行配置

# 3.3.2 conda设置代理

此步骤非必须,但建议配置,因为有些依赖包(如Pytorch)在国内源可能下载不了。可设置代理,并修改.condarc文件里的配置解决。

1)打开cmd,设置如下代理

$ set https_proxy=http://代理IP:代理端口号  
1

2)打开C:\Users\xxx目录,找到.condarc文件,将配置改为

channels:
  - defaults
show_channel_urls: true
channel_alias: https://mirrors.tuna.tsinghua.edu.cn/anaconda

custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
ssl_verify: true

changeps1: True
auto_update_conda: True
offline: True
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 3.3.3 conda基本使用

conda使用前需要先创建虚拟环境,命令如下:

$ conda create -n conda_env python=3.8
1

说明:conda_env是我起的虚拟环境别名,随便起就行(创建完后在Conda根目录下的envs文件夹里),python版本跟你下载的conda版本保持一致(而不是和你本机的Python版本保持一致)

创建完虚拟环境之后,使用如下命令激活虚拟环境即可,剩下的就和之前一样了,可以在虚拟环境里使用 pip 安装依赖。

$ conda activate conda_env 
1

说明:如果使用conda activate激活环境出错Your shell has not been properly configured to use 'conda activate',那么尝试直接输入activate your-env-name,不要输入conda activate your-env-name

如果要关闭虚拟环境,输入以下命令即可。

$ conda deactivate                        
1

可通过如下命令查看所有conda环境,前面有个*的代表当前环境。

$ conda info --env
1

另注:如果想要在未激活的状态下直接使用conda环境运行脚本,可通过如下方式:

$ conda run -n conda_38_env python3 /root/test.py
1

# 3.4 virtualenv虚拟环境

# 3.4.1 虚拟环境简介

虚拟环境是系统的一个位置,你可以在其中安装包,并将其与其他Python包隔离,便于将项目部署到服务器环境。

# 3.4.2 建立虚拟环境

在终端中切换到项目目录(以project为例), Python3可使用如下命令来创建虚拟环境:

project$ python -m venv ll_env
1

这里运行了模块venv ,并使用它来创建一个名为ll_env的虚拟环境。

# 3.4.3 激活虚拟环境

建立虚拟环境后, 需要使用下面的命令激活它:

project$ ll_env\Scripts\activate 
1

这个命令运行ll_env\Scripts中的脚本activate。环境处于活动状态时,环境名将包含在括号内,在这种情况下,你可以在环境中安装包,并使用已安装的包。你在ll_env中安装的包仅在该环境处于活动状态时才可用。

要停止使用虚拟环境, 可执行命令deactivate

(ll_env)project$ deactivate
1

说明:Linux系统激活虚拟环境的命令为:source ll_env/bin/activate

如果关闭运行虚拟环境的终端, 虚拟环境也将不再处于活动状态。

# 4. 数据库及中间件环境

# 4.1 Oracle环境

# 4.1.1 Oracle及PLSQL安装

Oracle官网:https://www.oracle.com/database/technologies/112010-win64soft.html (opens new window) (以下以11g_x32为例)

PLSQL官网:https://www.allroundautomations.com/try-it-free/ (opens new window)

注意:PLSQL 位数一定要与安装的 Oralce 位数相同

# 4.1.2 Oracle及PLSQL设置

Oracle设置:

  • 打开“服务”管理界面,将所有 oracle 开头的,且启动类型为自动的,都改为手动。

PLSQL设置

  • Step1:PLSQL的破解汉化,附PLSQL12的激活码如下:

    product code: 4vkjwhfeh3ufnqnmpr9brvcuyujrx3n3le 
    serial Number:226959 
    password: xs374ca
    
    1
    2
    3
  • Step2:PLSQL的个人喜好设置,以下仅供参考:

    1)配置——首选项
    - 连接:会话方式选择“单路会话”
    - 登录历史:勾选上“带口令存储” (设置了这个在登录时可以快捷登录,仅个人电脑这样设置,服务器禁止这么做)
    2)视图
    - 上方那9个复选框仅保留“对象浏览器”、“PL/SQL剪贴板”
    注:如果不小心将PLSQL的窗口弄乱又不会恢复,可以恢复默认窗口样式:配置——首选项——外观——复位停放(拉到最底下有这个按钮)
    
    1
    2
    3
    4
    5
    6
  • Step3:设置PLSQL美化器

    右键“配置”处的“PL/SQL美化器”,点击“Add to Quick Access Toolbar”,此时“工具”处就有“PL/SQL美化器”功能了
    
    1
  • Step4:设置PLSQL自动替换(配置——首选项——编辑器——自动替换),以下仅供参考:

    i=insert
    s=select
    u=update
    w=where
    
    1
    2
    3
    4
  • Step5:PLSQL自定义专用复制模板

    要把写好的SQL语句放到公司内部封装开发框架的代码中,是一个很麻烦的重复性操作,所幸PLSQL支持自定义专用复制,我们只需要提前写好模板文件,就可以直接将SQL语句复制成可用的代码。

    模板文件:

    在PLSQL的安装目录下找到这个SpecialCopy目录,在里面创建xxx.copy文件,写入一个类似于以下的模板,然后重启PLSQL

    sqlBF.append("<line_1>");
    sqlBF.append("<line_*>" );
    sqlBF.append("<line_n>");
    
    1
    2
    3

    使用方法:

    选中SQL语句右键——专用复制——选择自定义的那个模板——去代码中粘贴

# 4.1.3 Oracle彻底卸载

[1] 开始->设置->控制面板->管理工具->服务,停止所有Oracle服务。

[2] 运行Universal Installer,卸载Oracle产品。

[3] 手动删除注册表和环境变量中的信息。

1)选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE,删除这个入口。
2)选择HKEY LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services,滚动这个列表,删除所有Oracle入口(以oracle或OraWeb开头的键)
3)选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application,删除所有Oracle入口。
4)删除HKEY_CLASSES_ROOT目录下所有以Ora、Oracle、Orcl或EnumOra为前缀的键。
5)删除HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Menuorder\Start Menu\Programs中所有以oracle开头的键。
6)删除HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINSTINI中除Microsoft ODBC for Oracle注册表键以外的所有含有Oracle的键。
7)我的电脑->属性-->高级->环境变量,删除环境变量CLASSPATH和PATH中有关Oracle的设定。
1
2
3
4
5
6
7

[4] 重启PC,打开服务应该没有Oracle相关的服务了,这样便彻底卸载干净了。

# 4.1.4 连接Oracle本地数据库

我们可以用sys用户用sysdba模式登录本地数据库(密码是安装Oracle时你自己设置的),供学习Oracle时练习SQL使用。

想要成功连接本地的oracle数据库,首先要确保本地的这2个服务是处于启动状态:

  • OracleOraDb11g_home1TNSListener (oracle的监听器)
  • OracleServiceORCL (oracle的数据库)

附:使用Navicat连接Oracle时遇到的问题

  • 问题描述:Navicat Premium 12连接Oracle时提示oracle library is not loaded
  • 产生原因:Oracle装的x32位的,而Navicat装的x64位的。
  • 解决办法:去官网下载解压与自己系统匹配的 Oracle Instant Client (opens new window),然后打开Navicat,配置“工具 - 选项 - 环境 - OCI环境 - OCI library (oci.dll)”,再重启Navicat就能连上Oracle了。

# 4.2 MySQL环境

# 4.2.1 下载安装MySQL

官网:https://dev.mysql.com/downloads/mysql/ (opens new window)(我安装的8.0.19-win版本,把压缩包解压即可)

# 4.2.2 配置MySQL

在mysql-8.0.19-winx64目录里创建一个my.ini文件,配置内容如下:

[mysqld] 
# 设置mysql的安装目录,也就是刚才我们安装的目录
basedir=D:/MySQL/mysql-8.0.19-winx64
# 设置mysql数据库的数据的存放目录,刚才创建的mysqldata目录
datadir=D:/MySQL/mysql-8.0.19-winx64/mysqldata
# 设置默认使用的端口
port=3306
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人试图攻击数据库
max_connect_errors=10
# 服务端使用的字符集
character-set-server=utf8mb4
# 数据库字符集对应一些排序等规则使用的字符集
collation-server=utf8mb4_general_ci
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件作为认证加密方式
# MySQL8.0默认认证加密方式为caching_sha2_password
default_authentication_plugin=mysql_native_password

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4

[client]
default-character-set=utf8mb4
port=3306
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

说明:

  • 复制目录路径的时候,要把里面的"\"修改成"/"
  • 默认加密方式default_authentication_plugin设置为mysql_native_password,新版本和老版本加密方式不一样,这样设置主要是为了兼容老版本

# 4.2.3 把MySQL添加到环境变量

目的:添加环境变量主要是为了方便使用,我们可以直接在cmd命令行(务必使用管理员模式打开)里输入MySQL命令

步骤:复制MySQL的bin目录路径,将其添加到系统变量的Path里

# 4.2.4 初始化MySQL,并设置密码

1)在cmd里输入以下命令进行MySQL的初始化:

mysqld --initialize-insecure --user=mysql --console
1

2)执行初始化命令成功之后,再执行下面的命令,安装mysql服务:

mysqld --install     # 务必使用管理员模式的cmd窗口,否则会安装失败
1

3)安装服务成功之后,输入下面命令启动服务:

net start mysql
1

4)这样,MySQL服务就启动了。然后我们给MySQL设置一个密码:

mysql -u root -p
1

-u root 是指定root用户登录,-p 是要求输入密码。刚刚初始化创建的密码为空,要求输入密码的时候,直接回车即可。

5)输入如下SQL语句,修改root用户的密码:

alter user 'root'@'localhost' identified by '想要设置的密码';
1

如果想新建立一个用户和数据库,然后给这个用户和数据库设置单独的管理权限和密码,可依次输入下面的命令:

#创建新的数据库,并设置数据库编码
CREATE DATABASE 你的数据库名 DEFAULT CHARSET=utf8 DEFAULT COLLATE utf8_unicode_ci;

#创建新的用户
CREATE USER '你的用户名'@'localhost' IDENTIFIED BY '你的密码';

#把刚刚创建的数据库的管理权限给予刚刚创建的MySQL用户
GRANT ALL PRIVILEGES ON 你的数据库名.* TO '你的用户名'@'localhost';

#刷新权限,使用设置生效
FLUSH PRIVILEGES;
1
2
3
4
5
6
7
8
9
10
11

# 4.2.5 Navicat常用操作

[1] 以各类文件的形式导入导出数据

支持常见的*.txt,*.csv,*.xls,*.xlsx,*.sql,*.json等文件格式,以导出Excel为例。

1)往数据库里导入Excel文件的数据

右键数据表——导入向导——选择Excel文件,之后按照提示操作便可,注意Excel里的列标题和MySQL的字段要对应起来。

2)从数据库里导出Excel文件的数据

右键数据表——导出向导——选择导出选择Excel,之后按照提示操作便可。

[2] 传输MySQL数据库对象

该操作传输数据非常快,相当于整个把存储库表的文件拷过去了。

工具——数据传输——填写源数据库和目标数据库的连接信息——勾选需要传输的数据库对象(表、索引、视图等)

[3] 查询SQL执行记录

Ctrl+H快捷键,可以查看近期执行的SQL记录,包含时间、IP、语句、耗时等信息。

[4] 生成E-R关系图并导出

这个一般是用于写数据库设计文档的时候用。

右键数据库名——逆向数据库到模型...——手动对E-R图进行调整,添加连线——文件,打印为,选择PDF、PNG、SVG中的一种。

Navicat导出E-R图

# 4.3 Redis环境

Redis 官方不建议在 windows 下使用 Redis,所以官网没有 windows 版本可以下载。还好微软团队维护了开源的 windows 版本,虽然只有 3.2 版本,对于普通测试使用足够了。

# 4.3.1 下载安装Redis

官网:https://github.com/MicrosoftArchive/redis/releases (opens new window)(下载msi的安装版的)

安装一路next即可,记得勾选添加到环境变量。

# 4.3.2 使用Redis

文件介绍:

redis-server.exe:服务端程序,提供 redis 服务
redis-cli.exe: 客户端程序,通过它连接 redis 服务并进行操作
redis-check-dump.exe:RDB 文件修复工具
redis-check-aof.exe:AOF 文件修复工具
redis-benchmark.exe:性能测试工具,用以模拟同时由 N 个客户端发送 M 个 SETs/GETs 查询
redis.windows.conf: 配置文件,将 redis 作为普通软件使用的配置,命令行关闭则 redis 关闭
redis.windows-service.conf:配置文件,将 redis 作为系统服务的配置
1
2
3
4
5
6
7

启动nginx:新建一个bat脚本,内容如下(路径自行替换):

@cd /d D:\Redis3.2.100
redis-cli shutdown 
redis-server.exe redis.windows.conf
pause
1
2
3
4

这样,还是有个小问题,每次开启redis服务,都会开启一个窗口,挂在这里, 一不小心关闭了这个窗口,redis服务就终止了,还需要再次开启。

再进一步的改进,制作一个vb脚本,用来将redis服务在后台开启,不用在桌面再开启一个窗口。vb脚本的位置必须和start-redis.bat脚本路径相同。vb脚本redis-startup.vbs的内容如下:

set ws=wscript.createobject("wscript.shell")
ws.run "start-redis.bat /start",0
1
2

当然这样也有点儿问题:双击redis-startup.vbs脚本,不会有任何反应,开启Windows任务管理器检查一下就可以了。关闭redis服务,也需要用脚本来完成(或者去任务管理器kill进程),而不是在命令行下直接ctrl+c就可以结束批处理。

@cd /d D:\Redis3.2.100
taskkill /F /im redis-server.exe
1
2

# 4.3.3 Redis常见问题

[1] redis-server.exe双击闪退

Step1:打开命令行,切换到Redis的安装目录,输入以下命令:

redis-server.exe redis.windows.conf
1

观察是否如下图所示,是的话就已配置成功;否则,继续进行如下操作:

Redis配置成功

Step2:若启动redis出现**[\**\**] \**\**\*(当前日期)\**\**\** # Creating Server TCP listening socket \*:6379: listen: Unknown error**

更改redis文件夹中的redis.windows.conf,把#bind 127.0.0.1去掉#

Step3:若出现:Creating Server TCP listening socket 127.0.0.1:6379: bind: No error

关闭redis-cli即可。

redis-cli shutdown
1

# 4.4 Elasticsearch环境

ElasticSearch(ES)是一个基于Lucene构建的开源、分布式、RESTful接口的全文搜索引擎。ES还是一个分布式文档数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索,ES能够横向扩展至数以百计的服务器存储以及处理PB级的数据。可以在极短的时间内存储、搜索和分析大量的数据。通常作为具有复杂搜索场景情况下的引擎。

# 4.4.1 下载安装Elasticsearch

官网:https://www.elastic.co/cn/downloads/elasticsearch (opens new window),下载Windows版的压缩包解压即可,目录结构如下:

bin           可执行脚本目录
config        配置目录
jdk           内置 JDK 目录
lib           类库
logs          日志目录
modules       模块目录
plugins       插件目录
1
2
3
4
5
6
7

注:Elasticsearch是由java开发的,所以里面内置了JDK,用自己的就行,保证版本在Java8以上即可。

# 4.4.2 启动Elasticsearch

打开 bin\elasticsearch.bat 即可启动服务。打开浏览器,输入地址http://localhost:9200地址,出现类似以下结果说明启动成功。

{
  "name" : "DESKTOP-DBDDJM1",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "rpbqyFXzS_KPpjV8EdQTeg",
  "version" : {
    "number" : "7.14.1",
    "build_flavor" : "default",
    "build_type" : "zip",
    "build_hash" : "66b55ebfa59c92c15db3f69a335d500018b3331e",
    "build_date" : "2021-08-26T09:01:05.390870785Z",
    "build_snapshot" : false,
    "lucene_version" : "8.9.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

注: 9300 端口为 Elasticsearch 集群间组件的通信端口, 9200 端口为浏览器访问的 http协议 RESTful 端口。

# 4.4.3 Elasticsearch常见问题

[1] 必须保证JDK的版本在8以上,否则会报错。

[2] 双击启动窗口闪退,通过路径访问追踪错误,如果是“空间不足”,请修改JVM配置。

# 4.5 Neo4j环境

Neo4j是一个高性能的NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。 它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。 Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。

# 4.5.1 下载安装Neo4j

Neo4j是基于Java的图形数据库,运行Neo4j需要启动JVM进程,因此必须安装JAVA SE的JDK。如果你要用3.x的Neo4j,需要JDK8;如果你要用4.x的Neo4j,则需要JDK11(用8的话启动不了)。

Neo4j官网下载:https://neo4j.com/download-center/#community (opens new window)

Neo4j官方文档:https://neo4j.com/docs/ (opens new window)

下载完成后放某个目录下解压(注意路径全英文),目录结构如下:

  • bin目录:用于存储Neo4j的可执行程序;
  • conf目录:用于控制Neo4j启动的配置文件;
  • data目录:用于存储核心数据库文件;
  • plugins目录:用于存储Neo4j的插件;

然后需要配置环境变量:此电脑——右键“属性”——高级系统设置——环境变量(在下面系统变量那栏进行配置)

创建主目录环境变量NEO4J_HOME,并把主目录设置为变量值,即路径写到neo4j-community-3.5.28为止
1

# 4.5.2 启动Neo4j程序

写个bat脚本,用于启动Neo4j程序。

cd /d D:\neo4j\neo4j-community-3.5.28\bin
neo4j.bat console
1
2

Neo4j服务器具有一个集成的浏览器,在一个运行的服务器实例上访问 http://localhost:7474/,显示启动页面。

默认的用户是neo4j,其默认的密码是:neo4j,第一次成功登录到Neo4j服务器之后,需要重置密码(务必记住)。

Neo4j界面

# 4.6 Nginx环境

# 4.6.1 下载Nginx

Nginx官网:http://nginx.org/en/download.html (opens new window) (以nginx-1.20.0为例)

# 4.6.2 安装并启动Nginx服务

解压缩,运行cmd,使用命令进行操作,不要直接双击nginx.exe,不要直接双击nginx.exe,不要直接双击nginx.exe!

说明:一定要在dos窗口启动,不要直接双击nginx.exe,这样会导致修改配置后重启、停止nginx无效,需要手动关闭任务管理器内的所有nginx进程,再启动才可以。

Step1:使用命令到达nginx的加压缩后的目录

$ cd /d D:\nginx-1.20.0
1

Step2:启动nginx服务,启动时会一闪而过是正常的

$ start nginx
1

Step3:查看任务进程是否存在,dos或打开任务管理器都行

$ tasklist /fi "imagename eq nginx.exe"
1

注:如果都没有可能是启动报错了,查看一下日志,在nginx目录中的logs文件夹下error.log是日志文件。常见的错误有端口号被占用、nginx文件夹路径含中文。

Step4:修改配置文件,进入解压缩目录,在conf目录下找到nginx.conf使用txt文本打开即可,找到server这个节点,修改端口号,如果有需求可以修改主页目录没有就不用修改。

如果程序没启动就直接start nginx启动,如果已经启动了就使用以下命令重新加载配置文件并重启

$ nginx -s reload
1

之后就打开浏览器访问刚才的域名及端口http://localhost:8800,出现欢迎页就说明部署成功了。

Step5:关闭nginx服务使用以下命令,同样也是一闪而过是正常的,看一下是否进程已消失即可

快速停止:

$ nginx -s stop
1

完整有序的关闭:

$ nginx -s quit
1

注:上述操作可以写成bat脚本批处理(路径自行替换),这样就不用每次都输命令了。

启动nginx:

@cd /d D:\1_Development\2_Java\nginx-1.20.0
@start nginx
@nginx -s reload
tasklist /fi "imagename eq nginx.exe"
pause
1
2
3
4
5

关闭nginx:

@cd /d D:\nginx-1.20.0
@nginx -s quit
tasklist /fi "imagename eq nginx.exe"
pause
1
2
3
4

# 5. 参考资料

[1] 在一台电脑上配置多个版本JDK,想要多少都依你 from CSDN (opens new window)

[2] 在IntelliJ IDEA 2018上配置Tomcat并运行第一个JavaWeb项目 from 掘金 (opens new window)

[3] IntelliJ IDEA 控制台乱码'中文乱码 “淇℃伅” form CSDN (opens new window)

[4] 成功解决Address localhost:1099 is already in use from CSDN (opens new window)

[5] Intellij IDEA Tomcat 启动报错, Unable to ping server at localhost:1099 from CSDN (opens new window)

[6] idea配置 Tomcat Deployment添加时没有Artifact...选择的解决方案 from CSDN (opens new window)

[7] Oracle11g卸载(win10) from 博客园 (opens new window)

[8] idea右侧的maven框消失 from CSDN (opens new window)

[9] idea生成类注释和方法注释的正确方法 from CSDN (opens new window)

[10] 修改idea注释的风格 from CSDN (opens new window)

[11] Idea卡在Resolving Maven dependencies的解决方案 from CSDN (opens new window)

[12] Springboot项目修改html后不需要重启---springboot项目的热部署 from CSDN (opens new window)

[13] Intellij IDEA 4种配置热部署的方法 from 博客园 (opens new window)

[14] intellij idea tomcat jsp页面 热部署 from CSDN (opens new window)

[15] JRebel 破解最简单的使用 from 掘金 (opens new window)

[16] Jrebel 热部署不生效的解决办法 from CSDN (opens new window)

[17] python打印日志到控制台并将日志写入文件 from CSDN (opens new window)

[18] idea的控制台里使用查找功能 from CSDN (opens new window)

[19] Java进阶 -- 修改idea的jvm参数 from CSDN (opens new window)

[20] 值得推荐的Idea十几大优秀插件 from CSDN (opens new window)

[21] npm安装yarn并换源 from 简书 (opens new window)

[22] IntelliJ IDEA——显示类中所有方法 from CSDN (opens new window)

[23] idea运行vue项目 from CSDN (opens new window)

[24] PLSQL的特殊复制 from 博客园 (opens new window)

[25] jetbrains2020版全家桶破解 from Github (opens new window)

[26] jetbrains-in-chinese from Github (opens new window)

[27] Navicat Premium 12连接Oracle时提示oracle library is not loaded的问题解决 from CSDN (opens new window)

[28] sqlplus连接oracle数据库--连接本地oracle数据库和连接远程的oracle数据库 from CSDN (opens new window)

[29] PL/SQL Developer12设置SQL美化器 from 百度经验 (opens new window)

[30] Django如何把SQLite数据库转换为MySQL数据库 from Django中文网 (opens new window)

[31] Django将数据库切换为MySQL from CSDN (opens new window)

[32] python manage.py makemigrations 和 python manage.py migrate的区别 from CSDN (opens new window)

[33] Django启动时找不到mysqlclient处理 from 临渊Blog (opens new window)

[34] idea同一个窗口打开多个项目 from CSDN (opens new window)

[35] intellij idea同步所有配置、导入或导出所有配置 from CSDN (opens new window)

[36] IntelliJ IDEA如何整理代码格式 from 简书 (opens new window)

[37] SQLite vs MySQL vs PostgreSQL:关系型数据库比较 from 腾讯云 (opens new window)

[38] 在 windows 上安装 Redis from Redis教程 (opens new window)

[39] redis-server.exe双击闪退 win10系统 from CSDN (opens new window)

[40] IntelliJ IDEA 如何设置背景图片 from CSDN (opens new window)

[41] 全面了解mysql中utf8和utf8mb4的区别 from 开源中国 (opens new window)

[42] intellij idea同步所有配置、导入或导出所有配置 from CSDN (opens new window)

[43] pip换源 from 简书 (opens new window)

[44] 解决使用ACTIVATION_CODE激活jetbrains-product 2019.3.1时许可证密钥是旧格式的问题 from CSDN (opens new window)

[45] 如何利用Intellij Idea搭建python编译运行环境_from CSDN (opens new window)

[46] 让PIP源使用国内镜像,提升下载速度和安装成功率_from cnblogs (opens new window)

[47] python中pip 安装、升级、升级固定的包 from CSDN (opens new window)

[48] 批量更新过期的python库 from 博客园 (opens new window)

[49] spring boot maven项目,如何引入本地的jar from CSDN (opens new window)

[50] Elasticsearch学习笔记 from CSDN (opens new window)

[51] 【尚硅谷】ElasticSearch教程入门到精通(基于ELK技术栈elasticsearch 7.8.x版本) from Bilibili (opens new window)

[52] 全文搜索引擎 Elasticsearch 入门教程 from 阮一峰的网络日志 (opens new window)

[53] Intellij IDEA智能补全的10个姿势 from 博客园 (opens new window)

[54] 在Windows环境中安装Neo4j from 腾讯云 (opens new window)

[55] 手把手教你Pycharm远程连接服务器端项目进行本地开发调试 from 腾讯云 (opens new window)

[56] Anaconda使用conda activate激活环境出错 from CSDN (opens new window)

[57] python导出项目依赖包与导入项目依赖包 from CSDN (opens new window)

[58] requests.exceptions.SSLError: HTTPSConnectionPool 解决方案 from CSDN (opens new window)

[59] 解决maven编译错误:程序包com.sun.xml.internal.ws.spi不存在 from CSDN (opens new window)

[60] IDEA无法修改maven home directory问题 from CSDN (opens new window)

[61] maven错误:dependency cannot have character [children] from CSDN (opens new window)

[62] pom.part.lock (没有那个文件或目录) from CSDN (opens new window)

[63] idea创建springboot项目pom文件出现unexpected markup错误怎么解决?from CSDN (opens new window)

[64] Maven 常用镜像站地址 from 51CTO博客 (opens new window)

[65] MacOS下IDEA的idea.properties设定方法 from CSDN (opens new window)

[66] idea控制台取消行数限制 from CSDN (opens new window)

[67] idea里maven管理中存在灰色模块的解决办法 from CSDN (opens new window)

[68] pycharm创建python文件自动加上# -*- coding: utf-8 -*- from CSDN (opens new window)

[69] Springboot jar包远程调试 from CSDN (opens new window)

[70] IntelliJ IDEA热部署插件JRebel免费激活图文教程 from 积微成著 (opens new window)

[71] 在CenOS/Debian上搭建ReverseProxy反向代理服务 from Github (opens new window)

Last Updated: 3/10/2024, 6:54:42 PM