- 【PyTorch】分布式训练报错记录-ERROR:torch.distributed.elastic.multiprocessing.api:failed (exitcode: 1)
XuecWu3
pytorch分布式人工智能深度学习
最近,我在服务器上起基于PyTorch分布式框架的预训练实验,起初实验都在顺利进行,但是当我们把模型的深度与宽度调大之后,模型在训练几代之后便会出现如下的报错:WARNING:torch.distributed.elastic.multiprocessing.api:Sendingprocess41495closingsignalSIGTERMWARNING:torch.distributed.e
- day38
心落薄荷糖
Python训练营python
importtorchimporttorch.nnasnnimporttorch.optimasoptimfromsklearn.model_selectionimporttrain_test_splitfromsklearn.preprocessingimportMinMaxScalerimporttimeimportmatplotlib.pyplotaspltfromtqdmimporttqd
- Java注解的实现原理
empti_
Java基础java
Java注解的实现原理Java注解的实现涉及Java语言规范、编译器处理和JVM支持等多个层面。下面我将详细解释注解在Java中的实现机制。一、注解的本质注解本质上是一种特殊的接口,所有注解类型都隐式继承自java.lang.annotation.Annotation接口。当你定义一个注解时:public@interfaceMyAnnotation{Stringvalue();}编译器实际上会生成
- python 多进程多线程编程
NurDroid
python网络java
1.Python多进程编程基础1.1多进程概念与原理多进程编程是指一个程序运行时启动多个进程来完成任务。每个进程拥有独立的内存空间,互不干扰,可以同时运行,充分利用多核CPU的计算能力。例如,在一个数据处理程序中,可以启动多个进程分别处理不同的数据块,从而加快处理速度。Python中的多进程编程主要通过multiprocessing模块实现,它提供了丰富的接口来创建和管理进程。1.2multipr
- 足球数据API接口 - 【数据接口1】API调用示例代码
https://www.xxe.io/packagecom.huaying.demo.football;importjavax.xml.bind.JAXBContext;importjavax.xml.bind.Unmarshaller;importjavax.xml.bind.annotation.XmlElement;importjavax.xml.bind.annotation.XmlRoo
- 进阶版爬虫
启明源码
爬虫
要掌握进阶版爬虫,你需要从基础爬虫技能过渡到更复杂的内容采集与反爬机制绕过技术。以下是一个系统性的进阶学习路线及关键技术点:进阶爬虫学习路线图一、基础回顾(必须扎实)熟练使用:requests/httpx网页解析:BeautifulSoup/lxml/xpath多线程/多进程:threading/multiprocessing/concurrent.futures简单爬虫项目:新闻/电商类页面爬取
- WEB基础---注解
Lill_bin
javajava开发语言mysql后端springsql
什么是注解注解(Annotation),也叫元数据,标签,注释。注解叫注释的时候,容易和java的代码注释混淆,一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。为什么要学习注解1.注解是开发中的利器,可以使得代码更加的简洁,逻辑更加清爽2.以后能用别人的注解,能够
- Python编程:缺陷检测图像预处理
倔强老吕
C++与python交互编程pythonopencv计算机视觉
图像预处理是工业缺陷检测系统中的关键环节,直接影响后续检测的准确性。下面将详细介绍一些工业缺陷检测图像预处理流程,包含多种优化技术和实用方法。基础预处理流程importcv2importnumpyasnpfromskimageimportexposureimportmatplotlib.pyplotaspltdefbasic_preprocessing(image_path):"""基础图像预处理
- Python编程:图像增强
倔强老吕
C++与python交互编程pythonopencv计算机视觉图像增强
图像增强图像增强是数字图像处理中的重要技术,旨在改善图像质量或突出图像中的有用信息,为后续的分析和处理提供更好的基础。空间域图像增强灰度变换定义灰度变换是一种点处理(pointprocessing)操作,可表示为:s=T(r)其中:r:输入图像像素的原始灰度值(通常范围[0,L-1],如8位图像为[0,255])s:变换后的输出灰度值T:灰度变换函数核心特性单像素操作:输出值仅取决于对应位置的输入
- DAY 43 复习日 CNN训练与Grad-CAM可视化(模块化实现)
沐兮兮兮
cnn人工智能神经网络
目录Kaggle图像分类项目:项目结构一、数据准备模块1.config/paths.py2.data/preprocessing.py3.data/dataset.py二、模型定义模块1.models/cnn_model.py2.models/grad_cam.py三、训练脚本train.py四、可视化模块1.utils/visualization.py2.visualize.py五、实用工具ut
- Python学习Day34
m0_64472246
python打卡学习python
学习来源:@浙大疏锦行优化耗时:importtorchimporttorch.nnasnnimporttorch.optimasoptimfromsklearn.datasetsimportload_irisfromsklearn.model_selectionimporttrain_test_splitfromsklearn.preprocessingimportMinMaxScalerimpo
- Python处理滑块缺口验证码以及字母数字验证码识别
该功能主要运用到的模块有:re、cv2、ddddocr、matplotlib等字母数字识别该识别可以直接下载第三方工具包ddddocr进行处理使用Python的包管理工具来安装ddddocr及其所需的依赖库pipinstallddddocr具体实现,分别处理保存在本地的图片已经base64格式的图片importddddocr#识别本地图片defalphanumericProcessing(img_
- Python多线程与多进程
文章目录1、PythonGIL(全局解释器锁)一、GIL导致伪并发的核心机制二、伪并发的表现与影响1.CPU密集型任务:多线程无效甚至负优化2.I/O密集型任务:多线程有效3.伪并发本质三、为什么需要GIL?设计初衷四、解决GIL限制的方案2、多线程和多进程核心区别实现方式与代码示例1.多线程实现(`threading`模块)2.多进程实现(`multiprocessing`模块)高级用法线程池/
- redis 序列化乱码导致 存储和 拿出数据比较失败
银冬纯色
redis缓存nosql
redis序列化乱码导致存储和拿出数据比较失败在存入redis的模块添加以下配置类保证存入与取出的数据一致在存入redis的模块添加以下配置类保证存入与取出的数据一致importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importor
- 嵌入式学习 51单片机01
c6lala
学习51单片机嵌入式硬件
一、框架1、CPU(CentralProcessingUnit,中央处理单元)是计算机的核心部件,负责执行计算机指令和处理数据。2、MCU(MicrocontrollerUnit,微控制单元)是一种将中央处理器、内存、输入输出接口等多种功能模块集成在单一芯片上的微型计算机系统。(特殊的CPU重视对外摄的控制而非数据的处理)3、MPU(MicroprocessorUnit,微处理器单元)是一种
- 用JavaScript实现异步锁
某柚啊
JavaScriptjavascript前端开发语言
场景连续多次的响应时间不确定的异步请求,按请求顺序依次返回响应结果。代码classAsyncQueue{constructor(){this.queue=[];//请求队列this.isProcessing=false;//当前是否在处理请求}//添加请求到队列enqueue(asyncFunc){this.queue.push(asyncFunc);this.processQueue();//开
- LSTM价格预测模型:基于技术指标与市场情绪数据
pk_xz123456
仿真模型算法深度学习lstm人工智能rnn深度学习开发语言目标检测神经网络
LSTM价格预测模型:基于技术指标与市场情绪数据一、模型架构设计importnumpyasnpimportpandasaspdimporttensorflowastffromsklearn.preprocessingimportStandardScalerfromtensorflow.keras.modelsimportSequentialfrom
- python训练day37 早停策略和模型权重的保持
importtorchimporttorch.nnasnnimporttorch.optimasoptimfromsklearn.datasetsimportload_irisfromsklearn.model_selectionimporttrain_test_splitfromsklearn.preprocessingimportMinMaxScalerimporttimeimportmatp
- 图像处理领域发文量TOP期刊排行榜(含中科院分区+开放获取信息)
pitepa
期刊推荐
图像处理领域发文量TOP期刊排行榜(含中科院分区+开放获取信息)以下内容是由WebofScience搜索关键词“Imageprocessing”即(图像处理),按照23-25年发相关文章发文量来进行排序。搜索日期20250616中科院分区与OA信息是由letpub网站搜索得来。PublicationTitles中科院分区是否OACount1IEEEACCESS4Yes82012SENSORS3Ye
- 【python实用小脚本-105】Python定时提醒工具:优雅实现声音警报与交互控制
Kyln.Wu
Pythonpython交互开发语言
在日常工作和生活中,我们经常需要设置定时提醒来避免长时间专注导致的疲劳。今天我将分享一个使用Python实现的简单但实用的定时提醒工具,它能够在设定的时间间隔后播放声音提醒,并允许用户通过输入来关闭提醒。一、代码功能解析代码展示:importosimportplaysoundfromtimeimportsleepimportmultiprocessingdefremind():whileTrue:
- 6月19日复盘
四万二千
人工智能transformer
6月19日复盘二、分词与词向量分词和词向量是NLP的基础技术。1.分词分词是将连续的文本分割成独立的词汇单元(tokens)的过程。这些单元可以是单词、符号或子词。1.1中文特性中文句子由连续的汉字组成,没有明显的词边界:词与词之间没有分隔符英文:Ilovenaturallanguageprocessing.中文:我喜欢自然语言处理。词是最基本的语义单元。为了处理文本信息,须将连续的序列分割成有意
- JAVA API编写
Be Lady
jsonjava
前言日前,接到任务写一个API,思考了一番,决定用JAVA语言编写,配合springboot框架,先初步实现了一个本地调用API,具体代码如下。代码packagecom.example.demo.controller;importorg.springframework.web.bind.annotation.*;importorg.springframework.web.bind.annotati
- nacos的总结
先睡
mavenspring
服务发现与健康监测:Nacos支持多种服务注册方式,包括API、SDK和Annotation等,服务消费者可以通过DNS或RPC方式方便地发现服务。其健康检查机制通过主动和被动的方式实时监测服务实例的健康状态,确保流量不会被发送到不健康的服务实例上,支持的健康检查模式包括HTTP、TCP、自定义健康检查等。动态配置服务:Nacos提供了集中化的配置管理,支持配置的实时推送和热更新,无需重启应用即可
- 视觉感知BEV算法学习路线
LQS2020
计算机视觉
学习视觉感知BEV(Bird’sEyeView)算法涉及多个方面的知识和技能。以下是一个系统化的学习路线图,可以帮助你逐步掌握BEV算法。1.基础知识学习1.1计算机视觉基础图像处理:了解图像的基本操作,如滤波、边缘检测、特征提取。推荐书籍:《DigitalImageProcessing》byRafaelC.GonzalezandRichardE.Woods特征提取和描述:学习SIFT、SURF、
- Mockito之mock方法抛出受检查异常;Mockito 使用 doThrow 让方法抛出异常
1、如果一个对象的方法的返回值是void,那么不能用when…thenThrow让该方法抛出异常。(1)如果有返回值,下面这种写法是错误的:importorg.junit.Test;importorg.mockito.Mock;importorg.mockito.MockitoAnnotations;importstaticorg.mockito.Mockito.when;publicclassM
- python打卡day55
Takina~
python打卡python机器学习
importnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.preprocessingimportMinMaxScalerfromsklearn.model_selectionimporttrain_test_splitfromsklearn.linear_modelimportLinearRegressionfromsklearn.ensembl
- 解决recycleview动态添加条目后,item上的edit输入数据造成的数据错乱
马雷雷
recyclerview使用
动态添加条目的时候,在item的edit上输入数据,再此添加条目会导致条目位置错乱,数据移位;下面是解决方法:共两种方法可以解决错乱问题下面是完整代码可以直接创建一个项目看效果例子如下packagecom.example.administrator.demo;importandroid.os.Bundle;importandroid.support.annotation.Nullable;impo
- QT学习教程(三十五)
随风逐流wrx
学习qt
事件处理(-EventProcessingn)事件是视窗系统或者Qt本身在各种不同的情况下产生的。当用户点击或者释放鼠标,键盘时,一个鼠标事件或者键盘事件就产生了。当窗口第一次显示时,一个绘制事件会产生告诉新可见的窗口绘制自己。很多事件是为了相应用户动作产生的,也有一些事件是由系统独立产生的。在用Qt编程时,我们很少要考虑事件,当一些事件发生时,Qt控件会发出相应的信号。只有当实现用户控件或者需要
- 自然语言处理之文本分类:Transformer:文本分类数据集分析
zhubeibei168
自然语言处理自然语言处理分类transformer数据挖掘人工智能支持向量机
自然语言处理之文本分类:Transformer:文本分类数据集分析自然语言处理基础NLP概述自然语言处理(NaturalLanguageProcessing,NLP)是人工智能领域的一个重要分支,专注于使计算机能够理解、解释和生成人类语言。NLP技术广泛应用于文本分类、情感分析、机器翻译、问答系统、语音识别等场景。其核心挑战在于理解语言的复杂性和多义性,以及处理大
- 学习笔记丨数字信号处理(DSP)的应用——图像处理篇
棱镜研途
学习笔记信号处理图像处理人工智能
DSP在图像处理中的应用:核心技术解析数字信号处理(DSP)是图像处理的核心技术之一,广泛应用于增强、压缩、分析和识别等领域。以下是DSP在图像处理中的关键应用及技术细节:目录图像增强(ImageEnhancement)图像压缩(ImageCompression)特征提取(FeatureExtraction)实时图像处理(Real-TimeProcessing)多模态图像融合(Multimodal
- 312个免费高速HTTP代理IP(能隐藏自己真实IP地址)
yangshangchuan
高速免费superwordHTTP代理
124.88.67.20:843
190.36.223.93:8080
117.147.221.38:8123
122.228.92.103:3128
183.247.211.159:8123
124.88.67.35:81
112.18.51.167:8123
218.28.96.39:3128
49.94.160.198:3128
183.20
- pull解析和json编码
百合不是茶
androidpull解析json
n.json文件:
[{name:java,lan:c++,age:17},{name:android,lan:java,age:8}]
pull.xml文件
<?xml version="1.0" encoding="utf-8"?>
<stu>
<name>java
- [能源与矿产]石油与地球生态系统
comsci
能源
按照苏联的科学界的说法,石油并非是远古的生物残骸的演变产物,而是一种可以由某些特殊地质结构和物理条件生产出来的东西,也就是说,石油是可以自增长的....
那么我们做一个猜想: 石油好像是地球的体液,我们地球具有自动产生石油的某种机制,只要我们不过量开采石油,并保护好
- 类与对象浅谈
沐刃青蛟
java基础
类,字面理解,便是同一种事物的总称,比如人类,是对世界上所有人的一个总称。而对象,便是类的具体化,实例化,是一个具体事物,比如张飞这个人,就是人类的一个对象。但要注意的是:张飞这个人是对象,而不是张飞,张飞只是他这个人的名字,是他的属性而已。而一个类中包含了属性和方法这两兄弟,他们分别用来描述对象的行为和性质(感觉应该是
- 新站开始被收录后,我们应该做什么?
IT独行者
PHPseo
新站开始被收录后,我们应该做什么?
百度终于开始收录自己的网站了,作为站长,你是不是觉得那一刻很有成就感呢,同时,你是不是又很茫然,不知道下一步该做什么了?至少我当初就是这样,在这里和大家一份分享一下新站收录后,我们要做哪些工作。
至于如何让百度快速收录自己的网站,可以参考我之前的帖子《新站让百
- oracle 连接碰到的问题
文强chu
oracle
Unable to find a java Virtual Machine--安装64位版Oracle11gR2后无法启动SQLDeveloper的解决方案
作者:草根IT网 来源:未知 人气:813标签:
导读:安装64位版Oracle11gR2后发现启动SQLDeveloper时弹出配置java.exe的路径,找到Oracle自带java.exe后产生的路径“C:\app\用户名\prod
- Swing中按ctrl键同时移动鼠标拖动组件(类中多借口共享同一数据)
小桔子
java继承swing接口监听
都知道java中类只能单继承,但可以实现多个接口,但我发现实现多个接口之后,多个接口却不能共享同一个数据,应用开发中想实现:当用户按着ctrl键时,可以用鼠标点击拖动组件,比如说文本框。
编写一个监听实现KeyListener,NouseListener,MouseMotionListener三个接口,重写方法。定义一个全局变量boolea
- linux常用的命令
aichenglong
linux常用命令
1 startx切换到图形化界面
2 man命令:查看帮助信息
man 需要查看的命令,man命令提供了大量的帮助信息,一般可以分成4个部分
name:对命令的简单说明
synopsis:命令的使用格式说明
description:命令的详细说明信息
options:命令的各项说明
3 date:显示时间
语法:date [OPTION]... [+FORMAT]
- eclipse内存优化
AILIKES
javaeclipsejvmjdk
一 基本说明 在JVM中,总体上分2块内存区,默认空余堆内存小于 40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。 1)堆内存(Heap memory):堆是运行时数据区域,所有类实例和数组的内存均从此处分配,是Java代码可及的内存,是留给开发人
- 关键字的使用探讨
百合不是茶
关键字
//关键字的使用探讨/*访问关键词private 只能在本类中访问public 只能在本工程中访问protected 只能在包中和子类中访问默认的 只能在包中访问*//*final 类 方法 变量 final 类 不能被继承 final 方法 不能被子类覆盖,但可以继承 final 变量 只能有一次赋值,赋值后不能改变 final 不能用来修饰构造方法*///this()
- JS中定义对象的几种方式
bijian1013
js
1. 基于已有对象扩充其对象和方法(只适合于临时的生成一个对象):
<html>
<head>
<title>基于已有对象扩充其对象和方法(只适合于临时的生成一个对象)</title>
</head>
<script>
var obj = new Object();
- 表驱动法实例
bijian1013
java表驱动法TDD
获得月的天数是典型的直接访问驱动表方式的实例,下面我们来展示一下:
MonthDaysTest.java
package com.study.test;
import org.junit.Assert;
import org.junit.Test;
import com.study.MonthDays;
public class MonthDaysTest {
@T
- LInux启停重启常用服务器的脚本
bit1129
linux
启动,停止和重启常用服务器的Bash脚本,对于每个服务器,需要根据实际的安装路径做相应的修改
#! /bin/bash
Servers=(Apache2, Nginx, Resin, Tomcat, Couchbase, SVN, ActiveMQ, Mongo);
Ops=(Start, Stop, Restart);
currentDir=$(pwd);
echo
- 【HBase六】REST操作HBase
bit1129
hbase
HBase提供了REST风格的服务方便查看HBase集群的信息,以及执行增删改查操作
1. 启动和停止HBase REST 服务 1.1 启动REST服务
前台启动(默认端口号8080)
[hadoop@hadoop bin]$ ./hbase rest start
后台启动
hbase-daemon.sh start rest
启动时指定
- 大话zabbix 3.0设计假设
ronin47
What’s new in Zabbix 2.0?
去年开始使用Zabbix的时候,是1.8.X的版本,今年Zabbix已经跨入了2.0的时代。看了2.0的release notes,和performance相关的有下面几个:
:: Performance improvements::Trigger related da
- http错误码大全
byalias
http协议javaweb
响应码由三位十进制数字组成,它们出现在由HTTP服务器发送的响应的第一行。
响应码分五种类型,由它们的第一位数字表示:
1)1xx:信息,请求收到,继续处理
2)2xx:成功,行为被成功地接受、理解和采纳
3)3xx:重定向,为了完成请求,必须进一步执行的动作
4)4xx:客户端错误,请求包含语法错误或者请求无法实现
5)5xx:服务器错误,服务器不能实现一种明显无效的请求
- J2EE设计模式-Intercepting Filter
bylijinnan
java设计模式数据结构
Intercepting Filter类似于职责链模式
有两种实现
其中一种是Filter之间没有联系,全部Filter都存放在FilterChain中,由FilterChain来有序或无序地把把所有Filter调用一遍。没有用到链表这种数据结构。示例如下:
package com.ljn.filter.custom;
import java.util.ArrayList;
- 修改jboss端口
chicony
jboss
修改jboss端口
%JBOSS_HOME%\server\{服务实例名}\conf\bindingservice.beans\META-INF\bindings-jboss-beans.xml
中找到
<!-- The ports-default bindings are obtained by taking the base bindin
- c++ 用类模版实现数组类
CrazyMizzz
C++
最近c++学到数组类,写了代码将他实现,基本具有vector类的功能
#include<iostream>
#include<string>
#include<cassert>
using namespace std;
template<class T>
class Array
{
public:
//构造函数
- hadoop dfs.datanode.du.reserved 预留空间配置方法
daizj
hadoop预留空间
对于datanode配置预留空间的方法 为:在hdfs-site.xml添加如下配置
<property>
<name>dfs.datanode.du.reserved</name>
<value>10737418240</value>
 
- mysql远程访问的设置
dcj3sjt126com
mysql防火墙
第一步: 激活网络设置 你需要编辑mysql配置文件my.cnf. 通常状况,my.cnf放置于在以下目录: /etc/mysql/my.cnf (Debian linux) /etc/my.cnf (Red Hat Linux/Fedora Linux) /var/db/mysql/my.cnf (FreeBSD) 然后用vi编辑my.cnf,修改内容从以下行: [mysqld] 你所需要: 1
- ios 使用特定的popToViewController返回到相应的Controller
dcj3sjt126com
controller
1、取navigationCtroller中的Controllers
NSArray * ctrlArray = self.navigationController.viewControllers;
2、取出后,执行,
[self.navigationController popToViewController:[ctrlArray objectAtIndex:0] animated:YES
- Linux正则表达式和通配符的区别
eksliang
正则表达式通配符和正则表达式的区别通配符
转载请出自出处:http://eksliang.iteye.com/blog/1976579
首先得明白二者是截然不同的
通配符只能用在shell命令中,用来处理字符串的的匹配。
判断一个命令是否为bash shell(linux 默认的shell)的内置命令
type -t commad
返回结果含义
file 表示为外部命令
alias 表示该
- Ubuntu Mysql Install and CONF
gengzg
Install
http://www.navicat.com.cn/download/navicat-for-mysql
Step1: 下载Navicat ,网址:http://www.navicat.com/en/download/download.html
Step2:进入下载目录,解压压缩包:tar -zxvf navicat11_mysql_en.tar.gz
- 批处理,删除文件bat
huqiji
windowsdos
@echo off
::演示:删除指定路径下指定天数之前(以文件名中包含的日期字符串为准)的文件。
::如果演示结果无误,把del前面的echo去掉,即可实现真正删除。
::本例假设文件名中包含的日期字符串(比如:bak-2009-12-25.log)
rem 指定待删除文件的存放路径
set SrcDir=C:/Test/BatHome
rem 指定天数
set DaysAgo=1
- 跨浏览器兼容的HTML5视频音频播放器
天梯梦
html5
HTML5的video和audio标签是用来在网页中加入视频和音频的标签,在支持html5的浏览器中不需要预先加载Adobe Flash浏览器插件就能轻松快速的播放视频和音频文件。而html5media.js可以在不支持html5的浏览器上使video和audio标签生效。 How to enable <video> and <audio> tags in
- Bundle自定义数据传递
hm4123660
androidSerializable自定义数据传递BundleParcelable
我们都知道Bundle可能过put****()方法添加各种基本类型的数据,Intent也可以通过putExtras(Bundle)将数据添加进去,然后通过startActivity()跳到下一下Activity的时候就把数据也传到下一个Activity了。如传递一个字符串到下一个Activity
把数据放到Intent
- C#:异步编程和线程的使用(.NET 4.5 )
powertoolsteam
.net线程C#异步编程
异步编程和线程处理是并发或并行编程非常重要的功能特征。为了实现异步编程,可使用线程也可以不用。将异步与线程同时讲,将有助于我们更好的理解它们的特征。
本文中涉及关键知识点
1. 异步编程
2. 线程的使用
3. 基于任务的异步模式
4. 并行编程
5. 总结
异步编程
什么是异步操作?异步操作是指某些操作能够独立运行,不依赖主流程或主其他处理流程。通常情况下,C#程序
- spark 查看 job history 日志
Stark_Summer
日志sparkhistoryjob
SPARK_HOME/conf 下:
spark-defaults.conf 增加如下内容
spark.eventLog.enabled true spark.eventLog.dir hdfs://master:8020/var/log/spark spark.eventLog.compress true
spark-env.sh 增加如下内容
export SP
- SSH框架搭建
wangxiukai2015eye
springHibernatestruts
MyEclipse搭建SSH框架 Struts Spring Hibernate
1、new一个web project。
2、右键项目,为项目添加Struts支持。
选择Struts2 Core Libraries -<MyEclipes-Library>
点击Finish。src目录下多了struts