- 第2节下:线性表示代码带写【带注释】
人间普通饼饼
深度学习自学记录深度学习python
importtorchimportmatplotlib.pyplotasplt#画图用的importrandom#随机#生成数据,w表示权重,是一维向量(张量),b表示偏置值,是一个标量defcreate_data(w,b,data_num):#torch.normal是用于生成正态分布随机数的函数,它的作用是从指定的正态分布中生成张量,其中每个元素都是从该正态分布中采样的随机数。#语法:torc
- QT5实现简单的TCP通信
瑟寒凌风
QT开发
原文https://blog.csdn.net/u014695839/article/details/70041771/这段时间用到了QT的TCP通信,做了初步的学习与尝试,编写了一个客户端和服务器基于窗口通信的小例程。使用QT的网络套接字需要.pro文件中加入一句:QT+=network一、客户端的编写1、客户端的代码比服务器稍简单,总的来说,使用QT中的QTcpSocket类与服务器进行通信只
- 深究Spring中Bean的生命周期之面试宝典-百度面试题目(未弄懂)
是阿杜呀
面试javabean面试
转自:https://www.cnblogs.com/javazhiyin/p/10905294.html前言这其实是一道面试题,是我在面试百度的时候被问到的,当时没有答出来(因为自己真的很菜),后来在网上寻找答案,看到也是一头雾水,直到看到了《Springinaction》这本书,书上有对Bean声明周期的大致解释,但是没有代码分析,所以就自己上网寻找资料,一定要把这个Bean生命周期弄明白!网
- git恢复被删除的远程分支
十八点四零
gitgitgithub
1、使用reflog,找到最后一次commitidgitreflog--date=iso2、找到目标分支最后一次的commitID298dax2HEAD@{2019-05-1315:35:18+0800}:test3、进行恢复gitcheckout-b分支名称298dax24、切出分支后,本地有分支了,再push到远程仓库就可以了gitpushorigin分支名称
- 普通用户使用docker命令
码哝小鱼
linux运维dockereureka容器
一、授权普通用户直接使用docker命令1、将test帐号加入到docker组[root@host-client~]#useraddtest[root@host-client~]#passwdtest[root@host-client~]#gpasswd-atestdocker[root@host-client~]#groupstest#确认zabbix所属组test:testdocker2、授权
- 浅聊MQ之Kafka、RabbitMQ、ActiveMQ、RocketMQ持久化策略
天天向上杰
kafkarabbitmqactivemqrocketmqjava
以下是主流消息队列(Kafka、RabbitMQ、ActiveMQ、RocketMQ)的持久化策略详解及实际场景示例:1.Kafka持久化策略核心机制:日志分段存储:每个Topic分区对应一个物理日志文件(顺序写入)分段策略:默认每1GB或7天生成新Segment(log.segment.bytes/log.roll.hours)索引文件:.index(偏移量索引)和.timeindex(时间戳索
- 已解决OSError: [Errno 22] Invalid argument
袁袁袁袁满
python
已解决OSError:[Errno22]Invalidargument文章目录报错代码报错翻译报错原因解决方法千人全栈VIP答疑群联系博主帮忙解决报错报错代码粉丝群里面的一个粉丝用Python读取文件的时候,发生了报错(跑来找我求助,然后顺利帮助他解决了,顺便记录一下希望可以帮助到更多遇到这个bug不会解决的小伙伴),报错信息和代码如下:f=open(file,'r',encoding='utf-
- 溯源-如何还原攻击路径
C Aires
网络安全之溯源一网络安全网络网络协议
溯源-如何还原攻击路径1.web入侵流程2.windows-还原攻击路径3.linux-还原攻击路径1.web入侵流程信息收集->漏洞扫描->渗透攻击->提权->后渗透->持续控制2.windows-还原攻击路径日志分析web日志存在位置:1.默认安装位置的logs文件夹下/2.tomcat日志catalina.out(引擎的日志文件)、localhost(内部代码丢出的日志)、manager(应
- (3种解决思路)OSError: [Errno 22] Invalid argument:解决python爬虫中报错
万物皆可der
爬虫python
虽然是个小问题,但是纠结我好长时间,找了就此记录一下。1.路径问题更改为:withopen('./file/hi.txt','r','encoding='utf-8'')或withopen('.//file//hi.txt','r'
- DeepSeek 部署与集成实战教程
挖掘机技术我最强
AIjava人工智能
《零基础部署DeepSeek全栈指南:从API接入到高并发优化(含避坑实录)》一、本地开发环境部署(Windows/Mac)1.前置条件准备Java环境:JDK17+(推荐AzulZulu)#验证安装java-versionjavac-versionIDE配置:IntelliJIDEA安装以下插件.envfilessupport(环境变量管理)HTTPClient(API调试)Docker(容器化
- 【报错解决】 OSError: [Errno 22] Invalid argument
靠才华吃土
报错解决python学习
一、错误内容:open(log_path,‘w’).write(str(args)+‘\n\n’)OSError:[Errno22]Invalidargument:‘./model\model_gatenet\2024-03-2215:33:05.731866.txt’要打开的arg文件名称中包含了非法符号,需要将其替换为"-“或”_"二、改正方法:找到时间戳:datetime.datetime.
- PC端微信的文件夹都是些什么
宇宙第一小趴菜
Windows使用技巧微信
目录Windows微信文件wxid_xxxxxxxxxxxx(账号数据)AllUsers(头像和登录信息)Applet(小程序文件)FileStorage(聊天文件)Msg(数据存储文件)ResUpdateV2(压缩包)config(配置文件)BackupFiles(手机微信备份)Backup(一般为空)Applet(小程序数据)Cache(小程序、公众号、视频号图片缓存)CustomEmotio
- 错误提示OSError: [Errno 22] Invalid argument
2201_75626563
python爬虫
filename=title+'_'+first_published_time+'.txt'在给文件命名时,原本想以标题加发布时间命名,结果错误提示OSError:[Errno22]Invalidargument原因:first_published_time的格式是2024-02-01-21:53:00,包含了特殊字符:OSError:[Errno22]Invalidargument"通常表示给定
- Electron视图进程和主进程通讯
陆康永
electronelectronjavascript前端
快速创建基于vue的electron项目:@quick-start/create-electron-npm视图线程也就index.html是无法直接访问这个api的(如果没有开启视图层访问nodejs的功能,现在几乎没法直接开启,开启了一堆警告提示)所以需要通过reload.js方式给index.html视图层注入对应的方法,挂在window对象下面视图层给后端发起消息如果希望通过then的方式获
- html显示base64的pdf,html - base64 embeded PDF files won't render in Chrome - Stack Overflow
weixin_33047553
SomePDFfileswon'trenderinChromebrowserbutwillrenderfineinFirefox.Allfilesrenderfineinallbrowsersifemededdirectly.Theconfusingpartisthattheproblemisonlyforsomefilesandnotall.Filesarestoredinafolderthat
- go文件服务器mimetype,解决golang post文件时Content-Type出现的问题
付游
go文件服务器mimetype
同事用php写了一个接口,要上传文件,让我做下测试,直接用curl命令调用成功,然后想用golang写个示例,源码如下:packagemainimport("bytes""fmt""io/ioutil""mime/multipart""net/http")funcmain(){uri:="http://xxxxxxxxxxxx/api/fileattr"//URL地址xxxxxxxxxxxx由商务
- 中间件基础运维笔记
renle0216
运维中间件服务器
中间件环境配置1.jdk安装配置卸载openjdk#查询系统安装的jdkrpm-qa|grepjdk#卸载openjdkrpm-e--nodeps文件名或yum-yremove文件名安装jdk1.8#上传解压jdk安装包tar-zxvfjdk-8u341-linux-x64.tar.gz#配置Java环境变量vi/etc/profile#文件尾行追加以下内容exportJAVA_HOME=/opt
- Eigen教程-sparse
sda42342342423
eigen
转载http://blog.csdn.net/xuezhisdc/article/details/54633274本文对稀疏矩阵SparseMatrix的主要操作进行了总结。首先,建议先阅读《Eigen教程2-稀疏矩阵操作》。关于稀疏矩阵,最重要的一点是:稀疏矩阵的存储方式,是按列优先储存,还是按行优先存储。绝大多数的稀疏矩阵的算术操作都会断言(判断)操作数的存储方式是否相同。稀疏矩阵初始化构造函
- Java版PDF拼接
未秃也可程序员
javapdfpython
首先确保pom.xml文件中是否存在对应配置信息org.apache.pdfboxpdfbox2.0.27代码部分直接复制下方代码importorg.apache.pdfbox.multipdf.PDFMergerUtility;importjava.io.File;importjava.io.IOException;importjava.util.ArrayList;importjava.uti
- DeepSeek本地部署的一些问题记录
沐沐uuu
DeepSeek
1、模型怎么不保存到C盘:关掉ollama之后,设置环境变量:OLLAMA_MODELS,环境变量的地址,改为你想要的地址,参考文章:https://blog.csdn.net/u012151594/article/details/1420621992、ollamarm模型名,删除新建的模型,缓存文件C:\Users\Administrator.ollama,找你对应的目录,删除即可3、1.5b模
- druid mysql读写分离_Spring Boot + Mybatis + Druid 实现MySQL一主多从读写分离
咖啡碎冰冰
druidmysql读写分离
SpringBoot读写分离实现原理实现方式主要是通过扩展SpringAbstractRoutingDataSource这个类充当DataSource路由中介,在运行当中根据自定义KEY值动态切换正真的DataSource。具体实现创建测试库、表:createdatabase`mytest_db`;CREATETABLE`t_user`(`id`int(11)NOTNULLAUTO_INCREME
- linux4.0内核编译步骤,Ubuntu20.04linux内核(5.4.0版本)编译准备与实现过程-编译过程(2) -Go语言中文社区...
Up酱彡
linux4.0内核编译步骤
前面因为博客园维修,所以内核编译过程一直没有发出来,现在把整个内核过程分享出来。本随笔给出内核的编译实现过程,在编译前需要参照我前面一篇随笔:Ubuntu20.04linux内核(5.4.0版本)编译准备与实现过程-编译前准备(1):https://www.cnblogs.com/iFrank/p/14556664.html切记:注意一点需要参照前一篇随笔,不然编译过程十有八九出问题。开发环境Ub
- WPS Excel JS宏简单使用
i-7000
WPSJS宏自动化
1.获取指定Sheet并激活Application对象是整个Excel结构的根对象,可用于获取常用属性如ActiveCell、ActiveWorkbook、ActiveSheetApplication.Workbooks.Item(file_name).Worksheets.Item("Sheet1").Activate()2.获取Sheet上某一区域myRange=Application.Ran
- (十)PyQt5项目实战
qxdll
Pythonqtpythonwindows
参考白月黑羽教程https://www.byhy.net/tut/py/gui/qt_01/csdn的seniorwizard专栏https://blog.csdn.net/seniorwizard/category_1653109_3.html程序要发布给客户使用,建议使用32位的Python解释器,这样打包发布的exe程序可以兼容32位的Windows虽然教程建议使用pyside2但是,安装了
- 执行js生成json文件并动态写入数据
zuo-yiran
jsjavascriptjson前端
项目中需要执行js后生成一个新的json文件,并在该文件内写入json数据,示例:生成一个json文件,内含执行这个js的时间戳作为json文件中的数据。新建一个js文件create.js,js代码如下:constfs=require('fs');constpath=require('path');constfilePath=path.join(__dirname,'app_version.jso
- ubuntu20.04 为 AppImage 文件创建应用程序启动器(快捷方式)
zhangjingzheng6521
软件安装shellubuntu
注意:网上还有别的教程运行shell脚本的,写法跟着差不多,但是我没有成功,显示应用程序中不显示图标,不管是在本用户相应目录下还是/usr/share/applications目录下都不成功,只有这个文章的执行AppImage成功了,浪费我五六个小时,真的烦原文:https://ubunlog.com/zh-CN/%E5%88%9B%E5%BB%BA%E5%BA%94%E7%94%A8%E7%A8
- 【Linux】玩转Linux操作系统(七)磁盘管理
寒山独见君~
【Linux学习】linux服务器运维
磁盘管理列出文件系统的磁盘使用状况-df。[root~]#df-hFilesystemSizeUsedAvailUse%Mountedon/dev/vda140G5.0G33G14%/devtmpfs486M0486M0%/devtmpfs497M0497M0%/dev/shmtmpfs497M356K496M1%/runtmpfs497M0497M0%/sys/fs/cgrouptmpfs100
- java怎么复制别人的数据库_使用java将数据库文件复制到本地磁盘中
岑依惜
java怎么复制别人的数据库
packagecom.starry.exersise;importjava.io.BufferedInputStream;importjava.io.BufferedOutputStream;importjava.io.FileOutputStream;importjava.io.InputStream;importjava.sql.Blob;importjava.sql.Connection;i
- 大数据java篇——复制
sp_ur
笔记java文件夹复制大数据java
1.文件夹复制packageCopy;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;publicclassDirCopyDemo{publicstaticStringsrcRoot;publicstaticvoid
- 深度整理总结MySQL——undoLog日志工作原理
左灯右行的爱情
mysql数据库
undolog日志工作原理前言概念作用提供回滚操作实现MVCC关键因素总结undolog如何刷盘(持久化)总结前言一个事务在执行过程中,在还没有提交事务之前,如果MySQL发生了崩溃,要怎么回滚到事务之前的数据呢?这时候就要依靠我们下面聊的undolog了.概念undolog是一种用于撤销回退的日志,在事务没提交之前,MySQL会先记录更新前的数据到undolog日志文件里面,当事务回滚时或者数据
- 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