精华内容
下载资源
问答
  • Python下载三种安装区别web-based installer、executable installer、embeddable zip file
    千次阅读
    2021-12-05 06:09:02

    1、Python官网下载

      我下载的是python3.6.5版本的,所以放下官网链接

      下载链接:https://www.python.org/downloads/release/python-365/

     选择自己电脑适合的操作系统,找到自己需要的版本下载:

    2、三种安装Python方式

      第二列是计算机操作系统类型,可以看到最后的是大半是Windows操作系统的安装包。

      第一列是下载文件。最后那个x86代表适用于32位操作系统,x86-64代表适用于64位操作系统。

     三种文件名称安装方式web-based installer、executable installer、embeddable zip file:

     1、embeddable zip file:压缩包下载,解压安装,下载的是一个压缩文件,解压后即表示安装完成

     2、executable installer:独立安装程序,下载的是一个exe可执行程序,双击进行安装下载完可直接打开安装

     3、web-based installer:在线安装,下载的是一个exe可执行程序,双击后,该程序自动下载安装文件(所以需要有网络)进行安装。

      同时安装Python需要注意:

      运行安装程序过程中在某个界面,一定要勾选:  Add Python 3.5 to PATH

      如果不勾选该项,计算机会找不到Python。

    更多相关内容
  • navicat120_mysql_cs_x64.exe.zip navicat.exe安装包
  • EVCapture_3.9.3.0.exe.zip

    2020-03-09 22:32:34
    纯净无插件、广告的录屏软件,操作方便,体积小。支持多屏幕选区,屏幕,我一直在用的工具。下载解压后安装即可,不需要注册
  • sqlos及sqlservr.zip

    2019-07-28 13:02:39
    在win10中 安装SQL2005 安装到中途会无法继续进行下去, 需要替换二个文件 找到 \Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn(一般路径在C盘),将sqlos.dll与sqlservr.exe(这个就是需要替换的文件...
  • editplus压缩包.zip

    2021-02-22 21:58:05
    editplus压缩包.zip
  • infobright-4.0.7-0-x86_64-ice.rpm infobright社区版,本来就是开源的东西,还要资源分,没办法了,只能最低2分, csdn禁止重复上传,于是采用了压缩包加密上传,zip解压,密码是2CcMBzP8,云盘分享:htt去ps://...
  • npp.7.5.8.Installer.x64.zip

    2020-07-19 22:46:08
    直接下载安装,安装完注意改首选项->新建->(语言:Java 编码:ANSI) 一直下一步即可,安装目录可选和Java安装目录一致(建议这样)
  • 数码管段工具锐思原创.zip 数码管编码工具1.exe 数码管编码工具1.zip 智能反编译器V1.3 液晶字模软件zimo221.exe 电感计算.rar 电阻衰减计算Att2001.exe 电阻衰减计算Att2001.rar 绘图助手v1.0.exe 绘图助手v1.0....
  • MySQL8.0的zip解压式安装msi式安装

    千次阅读 2021-11-08 22:47:37
    MSI安装会默认将MySQL服务安装在C:\Program Files\MySQL的目录下并且无法自行选择安装路径,所以C盘不够用的请选择ZIP解压版 一、zip解压式安装 下载 1.前往官网 https://www.mysql.com/downloads/ ,滑动到最底部...

    两者安装区别:

    MSI安装会默认将MySQL服务安装在C:\Program Files\MySQL的目录下并且无法自行选择安装路径,所以C盘不够用的请选择ZIP解压版

    image-20211108132114951

    一、zip解压式安装

    下载

    1.前往官网 https://www.mysql.com/downloads/ ,滑动到最底部,此处我们点击第一个

    image-20211108110544284

    2.选择你想要安装的方式进行下载,此处我们点击zip解压安装的方式

    image-20211108110855779

    3.我们选择windows版本的MySQL8.0.27的zip格式安装MySQL服务

    image-20211108111807310

    4.在弹出的窗口中点击下载即可

    image-20211108112024473

    解压目录

    5.下载完成后解压目录如下:

    image-20211108112309449

    目录功能如下:

    ​ (1)bin目录:用于放置一些可执行文件,如mysql.exe、mysqld.exe、mysqlshow.exe等。

    ​ (2)docs:存放一些文档

    ​ (3)include目录:用于放置一些头文件,如mysql.h、mysqld_ername.h等。

    ​ (4)lib目录:用于放置一系列的库文件。

    ​ (5)share目录:用于存放字符集、语言等信息;错误信息和字符集文件等

    my.ini配置文件

    6.我们在根目录下新建一个my.ini配置文件,内容如下:

    [mysqld]
    
    # 设置3306端口
    port=3306
    
    # 设置mysql的安装目录,目录对应你自己的解压目录
    basedir=D:/mysql8.0.27/mysql-8.0.27-winx64
     
    # 设置mysql数据库的数据的存放目录,目录对应你自己的解压目录
    datadir=D:/mysql8.0.27/mysql-8.0.27-winx64/data   
    
    # 允许最大连接数
    max_connections=200
    
    # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
    max_connect_errors=10
    
    # 服务端使用的字符集默认为UTF8
    character-set-server=utf8
    
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    
    # 默认使用“mysql_native_password”插件认证
    default_authentication_plugin=mysql_native_password
    

    创建后的目录:

    image-20211108113752358

    知识扩展:

    (1)my.ini:是MySQL数据库中使用的配置文件。

    (2)my-huge.ini:适合超大型数据库的配置文件。

    (3)my-large.ini:适合大型数据库的配置文件。

    (4)my-medium.ini:适合中型数据库的配置文件。

    (5)my-small.ini:适合小型数据库的配置文件。

    (6)my-template.ini:是配置文件的模板,MySQL配置向导将该配置文件中选择项写入到my.ini文件。

    (7) my-innodb-heavy-4G.ini:表示该配置文件只对于InnoDB存储引擎有效,而且服务器的内存不能小于4GB。

    配置环境变量

    ​ 注:不配置也可以,配置环境变量的目的是让我们不用每次都要进入mysql的bin目录执行里面的命令,直接就可输入命令

    7.配置mysql环境变量,我们复制mysql的根目录

    image-20211108114059200

    8.回到桌面,右键“此电脑”,选择“属性”

    image-20211108114321951

    9.选择“高级系统设置”

    image-20211108114409184

    10.选择“环境变量”

    image-20211108114446394

    11.新建一个系统变量

    image-20211108114544049

    12.编辑如下:

    image-20211108114802823

    13.编辑好后点击确定,之后在系统变量中找到Path,我们双击它

    image-20211108114900166

    14.新建一个环境变量

    image-20211108115017544

    15.编辑如下:

    image-20211108115131108

    MySQL的安装

    16.之后点击确定即可,之后我们需要对mysql进行配置

    image-20211108120929786

    17.在cmd面板输入 mysqld --initialize-insecure,对mysql数据库进行初始化

    image-20211108120617911

    补充:当执行完这条命令后我们回到mysql的解压目录发现多出了一个data目录

    image-20211108115748953

    ​ data目录:用于放置一些日志文件以及数据库(需要初始化mysql服务才会有这个目录,我们刚解压出来是没有的)。

    18.我们继续输入 mysqld install mysql8.0.27 (服务名自己取) ,添加mysql服务

    image-20211108121028774

    删除服务命令:sc delete mysql8.0.27

    19.启动数据库,输入 net start mysql8.0.27

    image-20211108121309777

    补充:mysqld install mysql8.0.27 执行完这条命令时,我们回到桌面,右键“此电脑”,选择“管理”

    image-20211108123913952

    继续选择点击“服务”

    image-20211108123956622

    发现我们的mysql8.0.27的服务已经添加到计算机

    image-20211108124114176

    所以我们也可以使用右键他的方式来进行替代命令行net start mysql8.0.27的方式

    image-20211108124215595

    20.因为我们前面使用的是mysqld --initialize-insecure这种方式对数据库进行初始化,这种方式初始化数据库第一次是没有密码的,我们输入 mysql -uroot -p -P3306 (3306对应我们前面配置的mysql端口号)

    image-20211108122114215

    21.之后我们需要修改密码,输入 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; (123456就是密码)

    image-20211108122449058

    22.之后我们刷新,输入 flush privileges;

    image-20211108122732687

    23.我们先退出mysql,输入exit 或者quit进行退出

    image-20211108122744663

    24.我们重新登录,我们输入 mysql -h localhost -u root -p

    image-20211108123133424

    25.我们输入show databases; 查看数据库

    image-20211108123534236

    此处借用一个图来描述:

    image-20211108123645687

    26.我们使用Navicat可视化工具进行连接mysql进行测试,发现测试连接成功

    image-20211108124658420

    补充:新增用户

    知识补充:我们可以使用root用户创建其他用户,并授予它具体的权限

    首先我们在cmd窗口输入密码进入mysql服务,先创建一个数据库test,输入命令

    create database test;
    

    之后创建用户test,% 表示登录时ip不限制,123456表示密码

    create user test@'%' identified by '123456';
    

    之后授予权限给test,此处表示授予test数据库下的所有表的增删改查的权限给用户test,且用户test的ip地址不限制

    grant select,update,delete,insert on test.* to test@'%';
    

    我们输入 flush privileges; 刷新

    image-20211108125745314

    之后我们回到Navicat进行测试

    image-20211108125918170

    二、msi式安装

    相对于zip解压式安装,msi安装则简单很多,具体步骤如下:

    1.前往官网 https://www.mysql.com/downloads/ ,滑动到最底部,此处我们点击第一个

    image-20211108110544284

    2.选择你想要安装的方式进行下载,此处我们点击msi安装的方式

    image-20211108110855779

    3.此处我们选择在线安装版,点击下载

    image-20211108130728607

    4.继续点击下载

    image-20211108130805402

    5.下载完成得到一个msi文件,我们双击运行即可

    image-20211108130955781

    6.选择只安装MySQL Server

    下面的步骤参考博客:https://blog.csdn.net/WZH577/article/details/109015166

    image-20211108131358790

    共有5种安装类型提供选择(右侧为每种类型具体描述):

    ​ Developer Default:默认安装,安装MySQL开发所需的所有产品。
    ​ Server only:仅服务器,只安装MySql服务器产品。
    ​ Client only:仅客户端,只安装MySQL客户端产品,不安装服务器。
    ​ Full:安装所有,安装所有包含的MySQL产品和特性。
    ​ Custom:自定义安装,手动选择应该安装在系统上的产品。

    7.执行安装依赖程序

    image-20211108131543370

    1. 执行安装MySQL

    image-20211108131614079

    9.安装完成后进入产品配置,默认即可

    image-20211108131640463

    10.这一步要注意一下选项,提供了developmen、server、dedicate三个选项,是让你选择你安装mysql是用来干嘛的,开发测试就用development,占用系统资源少;server就是正式生产环境;至于dedicate,是特指这台电脑将完全被mysql占用所有资源,本机用一般选development就可以。
    image-20211108131722393

    11.设置root用户的密码(一定要记住),如果需要多用户的话可以配置其他用户

    image-20211108131748154

    12.配置完启动MySQL

    三、在ideal中连接MySQL数据库

    1.我们打开ideal,点击右下角的Database

    image-20211108133748545

    2.编辑如下

    image-20211108134410999

    3.下载完成后再次连接测试

    image-20211108134618848

    4.我们点击apply,发现ideal连接数据库成功,我们可以在ideal中查看数据了。

    image-20211108134742631

    喜欢请关注我

    至此,我们的MySQL8.0的两种安装方式以及在Ideal中连接mysql就讲解完毕了。喜欢我的话可以关注我的微信公众号 我爱学习呀嘻嘻 ,不定期分享各类资源哦。
    在这里插入图片描述

    展开全文
  • 下载所有必需的依赖项,使pkg-config 、 glib 、 gtk+ 、 cairo 、 pango等在MinGW32/MSYS上可用 将所有 zip 文件解压到update (仅新文件)或all目录(所有文件)中,从而允许xcopy或robocopy部署,或者如果...
  • sox-14-4-2.zip

    2020-05-02 13:34:17
    个人曾经尝试过去官网上下载sox,结果由于……(你懂的),下载失败无数次后才下载成功,花了我3小时的时间…… 因此,如果想节省时间或者现在立马就要使用的话,这将成为你的不二之
  • 找到"OPPO国外售后解锁恢复专用软件包.exe"运行它 2:端口:你手机连电脑后的COM(用上面三种方法任选一种连电脑) 3:速率:460800 OPPO unLock:Flash 4:打勾:账户/账号锁(如果手机是有账号锁造成开机让输账号锁或者是...
  • RabbitMQ.zip

    2019-08-03 08:55:30
    1.先安装otp_win64_22.0.exe(官网中...install a supported version of Erlang for Window,所...2.解压后,RabbitMQ的安装包有两个一个是zip格式,另一个是exe格式(二者其一,zip是免安装版),然后配置相关环境变量
  • java文件实现文件的上传和下载

    万次阅读 多人点赞 2019-06-10 10:46:20
     文件上传和下载是java web中常见的操作,文件上传主要是将文件通过IO流传放到服务器的某一个特定的文件夹下,而文件下载则是与文件上传相反,将文件从服务器的特定的文件夹下的文件通过IO流下载到本地。...

    ·        简介

      文件上传和下载是java web中常见的操作,文件上传主要是将文件通过IO流传放到服务器的某一个特定的文件夹下,而文件下载则是与文件上传相反,将文件从服务器的特定的文件夹下的文件通过IO流下载到本地。

      对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件。这个common-fileupload上传组件的jar包可以去apache官网上面下载,也可以在struts的lib文件夹下面找到,struts上传的功能就是基于这个实现的。common-fileupload是依赖于common-io这个包的,所以还需要下载这个包。

    ·        文件上传

      1、文件上传页面和消息提示页面

      upload.jsp页面的代码如下:

    <%@ page language="java" pageEncoding="UTF-8"%>
    
    <!DOCTYPE HTML>
    
    <html>
    
      <head>
    
        <title>文件上传</title>
    
       </head>
    
    
    
       <body>
    
         <form action="${pageContext.request.contextPath}/servlet/uploadHandleServlet2" enctype="multipart/form-data" method="post"         上传用户:<input type="text"name="username"><br/>
    
             上传文件1:<input type="file" name="file1"><br/>
    
             上传文件2:<input type="file" name="file2"><br/>
    
             <input type="submit" value="提交">
    
         </form>
    
       </body>
    
    </html>

    在文件上传的页面要用enctype="multipart/form-data" method="post"来表示进行文件上传。

      2、处理文件上传的Servlet

    public class UploadHandleServlet extends HttpServlet{
    
    
    
        @Override
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
            //得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全
    
            String savePath = this.getServletContext().getRealPath("/WEB-INF/upload");
    
            File file = new File(savePath);
    
            if(!file.exists()&&!file.isDirectory()){
    
                System.out.println("目录或文件不存在!");
    
                file.mkdir();
    
            }
    
            //消息提示
    
            String message = "";
    
            try {
    
                //使用Apache文件上传组件处理文件上传步骤:
    
                //1、创建一个DiskFileItemFactory工厂
    
                DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
    
                //2、创建一个文件上传解析器
    
                ServletFileUpload fileUpload = new ServletFileUpload(diskFileItemFactory);
    
                //解决上传文件名的中文乱码
    
                fileUpload.setHeaderEncoding("UTF-8");
    
                //3、判断提交上来的数据是否是上传表单的数据
    
                if(!fileUpload.isMultipartContent(request)){
    
                    //按照传统方式获取数据
    
                    return;
    
                }
    
                //4、使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List<FileItem>集合,每一个FileItem对应一个Form表单的输入项
    
                List<FileItem> list = fileUpload.parseRequest(request);
    
                for (FileItem item : list) {
    
                    //如果fileitem中封装的是普通输入项的数据
    
                    if(item.isFormField()){
    
                        String name = item.getFieldName();
    
                        //解决普通输入项的数据的中文乱码问题
    
                        String value = item.getString("UTF-8");
    
                        String value1 = new String(name.getBytes("iso8859-1"),"UTF-8");
    
                        System.out.println(name+"  "+value);
    
                        System.out.println(name+"  "+value1);
    
                    }else{
    
                        //如果fileitem中封装的是上传文件,得到上传的文件名称,
    
                        String fileName = item.getName();
    
                        System.out.println(fileName);
    
                        if(fileName==null||fileName.trim().equals("")){
    
                            continue;
    
                        }
    
                        //注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如:  c:\a\b\1.txt,而有些只是单纯的文件名,如:1.txt
    
                        //处理获取到的上传文件的文件名的路径部分,只保留文件名部分
    
                        fileName = fileName.substring(fileName.lastIndexOf(File.separator)+1);
    
                        //获取item中的上传文件的输入流
    
                        InputStream is = item.getInputStream();
    
                        //创建一个文件输出流
    
                        FileOutputStream fos = new FileOutputStream(savePath+File.separator+fileName);
    
                        //创建一个缓冲区
    
                        byte buffer[] = new byte[1024];
    
                        //判断输入流中的数据是否已经读完的标识
    
                        int length = 0;
    
                        //循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据
    
                        while((length = is.read(buffer))>0){
    
                            //使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath + "\\" + filename)当中
    
                            fos.write(buffer, 0, length);
    
                        }
    
                        //关闭输入流
    
                        is.close();
    
                        //关闭输出流
    
                        fos.close();
    
                        //删除处理文件上传时生成的临时文件
    
                        item.delete();
    
                        message = "文件上传成功";
    
                    }
    
                }
    
            } catch (FileUploadException e) {
    
                // TODO Auto-generated catch block
    
                e.printStackTrace();
    
                message = "文件上传失败";
    
            }
    
            request.setAttribute("message",message);
    
            request.getRequestDispatcher("/message.jsp").forward(request, response);
    
        }
    
    
    
        @Override
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
            doGet(request, response);
    
        }
    
       
    
    }
    
    

    3、文件上传的细节

      上述的代码虽然可以成功将文件上传到服务器上面的指定目录当中,但是文件上传功能有许多需要注意的小细节问题,以下列出的几点需要特别注意的:

      (1)、为保证服务器安全,上传文件应该放在外界无法直接访问的目录下,比如放于WEB-INF目录下。

      (2)、为防止文件覆盖的现象发生,要为上传文件产生一个唯一的文件名。

      (3)、为防止一个目录下面出现太多文件,要使用hash算法打散存储。

      (4)、要限制上传文件的最大值。

      (5)、要限制上传文件的类型,在收到上传文件名时,判断后缀名是否合法。

      4、改进后的servlet

    public class UploadHandleServlet1 extends HttpServlet{
    
    
    
        @Override
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
            //得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全
    
            String savePath = this.getServletContext().getRealPath("/WEB-INF/upload");
    
            //上传时生成的临时文件保存目录
    
            String tempPath = this.getServletContext().getRealPath("/WEB-INF/temp");
    
            File file = new File(tempPath);
    
            if(!file.exists()&&!file.isDirectory()){
    
                System.out.println("目录或文件不存在!");
    
                file.mkdir();
    
            }
    
            //消息提示
    
            String message = "";
    
            try {
    
                //使用Apache文件上传组件处理文件上传步骤:
    
                //1、创建一个DiskFileItemFactory工厂
    
                DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
    
                //设置工厂的缓冲区的大小,当上传的文件大小超过缓冲区的大小时,就会生成一个临时文件存放到指定的临时目录当中。
    
                diskFileItemFactory.setSizeThreshold(1024*100);
    
                //设置上传时生成的临时文件的保存目录
    
                diskFileItemFactory.setRepository(file);
    
                //2、创建一个文件上传解析器
    
                ServletFileUpload fileUpload = new ServletFileUpload(diskFileItemFactory);
    
                //解决上传文件名的中文乱码
    
                fileUpload.setHeaderEncoding("UTF-8");
    
                //监听文件上传进度
    
                fileUpload.setProgressListener(new ProgressListener(){
    
                    public void update(long pBytesRead, long pContentLength, int arg2) {
    
                        System.out.println("文件大小为:" + pContentLength + ",当前已处理:" + pBytesRead);
    
                    }
    
                });
    
                //3、判断提交上来的数据是否是上传表单的数据
    
                if(!fileUpload.isMultipartContent(request)){
    
                    //按照传统方式获取数据
    
                    return;
    
                }
    
                //设置上传单个文件的大小的最大值,目前是设置为1024*1024字节,也就是1MB
    
                fileUpload.setFileSizeMax(1024*1024);
    
                //设置上传文件总量的最大值,最大值=同时上传的多个文件的大小的最大值的和,目前设置为10MB
    
                fileUpload.setSizeMax(1024*1024*10);
    
                //4、使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List<FileItem>集合,每一个FileItem对应一个Form表单的输入项
    
                List<FileItem> list = fileUpload.parseRequest(request);
    
                for (FileItem item : list) {
    
                    //如果fileitem中封装的是普通输入项的数据
    
                    if(item.isFormField()){
    
                        String name = item.getFieldName();
    
                        //解决普通输入项的数据的中文乱码问题
    
                        String value = item.getString("UTF-8");
    
                        String value1 = new String(name.getBytes("iso8859-1"),"UTF-8");
    
                        System.out.println(name+"  "+value);
    
                        System.out.println(name+"  "+value1);
    
                    }else{
    
                        //如果fileitem中封装的是上传文件,得到上传的文件名称,
    
                        String fileName = item.getName();
    
                        System.out.println(fileName);
    
                        if(fileName==null||fileName.trim().equals("")){
    
                            continue;
    
                        }
    
                        //注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如:  c:\a\b\1.txt,而有些只是单纯的文件名,如:1.txt
    
                        //处理获取到的上传文件的文件名的路径部分,只保留文件名部分
    
                        fileName = fileName.substring(fileName.lastIndexOf(File.separator)+1);
    
                        //得到上传文件的扩展名
    
                        String fileExtName = fileName.substring(fileName.lastIndexOf(".")+1);
    
                        if("zip".equals(fileExtName)||"rar".equals(fileExtName)||"tar".equals(fileExtName)||"jar".equals(fileExtName)){
    
                            request.setAttribute("message", "上传文件的类型不符合!!!");
    
                            request.getRequestDispatcher("/message.jsp").forward(request, response);
    
                            return;
    
                        }
    
                        //如果需要限制上传的文件类型,那么可以通过文件的扩展名来判断上传的文件类型是否合法
    
                        System.out.println("上传文件的扩展名为:"+fileExtName);
    
                        //获取item中的上传文件的输入流
    
                        InputStream is = item.getInputStream();
    
                        //得到文件保存的名称
    
                        fileName = mkFileName(fileName);
    
                        //得到文件保存的路径
    
                        String savePathStr = mkFilePath(savePath, fileName);
    
                        System.out.println("保存路径为:"+savePathStr);
    
                        //创建一个文件输出流
    
                        FileOutputStream fos = new FileOutputStream(savePathStr+File.separator+fileName);
    
                        //创建一个缓冲区
    
                        byte buffer[] = new byte[1024];
    
                        //判断输入流中的数据是否已经读完的标识
    
                        int length = 0;
    
                        //循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据
    
                        while((length = is.read(buffer))>0){
    
                            //使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath + "\\" + filename)当中
    
                            fos.write(buffer, 0, length);
    
                        }
    
                        //关闭输入流
    
                        is.close();
    
                        //关闭输出流
    
                        fos.close();
    
                        //删除处理文件上传时生成的临时文件
    
                        item.delete();
    
                        message = "文件上传成功";
    
                    }
    
                }
    
            } catch (FileUploadBase.FileSizeLimitExceededException e) {
    
                e.printStackTrace();
    
                request.setAttribute("message", "单个文件超出最大值!!!");
    
                request.getRequestDispatcher("/message.jsp").forward(request, response);
    
                return;
    
            }catch (FileUploadBase.SizeLimitExceededException e) {
    
                e.printStackTrace();
    
                request.setAttribute("message", "上传文件的总的大小超出限制的最大值!!!");
    
                request.getRequestDispatcher("/message.jsp").forward(request, response);
    
                return;
    
            }catch (FileUploadException e) {
    
                // TODO Auto-generated catch block
    
                e.printStackTrace();
    
                message = "文件上传失败";
    
            }
    
            request.setAttribute("message",message);
    
            request.getRequestDispatcher("/message.jsp").forward(request, response);
    
        }
    
    
    
        @Override
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
            doGet(request, response);
    
        }
    
        //生成上传文件的文件名,文件名以:uuid+"_"+文件的原始名称
    
        public String mkFileName(String fileName){
    
            return UUID.randomUUID().toString()+"_"+fileName;
    
        }
    
        public String mkFilePath(String savePath,String fileName){
    
            //得到文件名的hashCode的值,得到的就是filename这个字符串对象在内存中的地址
    
            int hashcode = fileName.hashCode();
    
            int dir1 = hashcode&0xf;
    
            int dir2 = (hashcode&0xf0)>>4;
    
            //构造新的保存目录
    
            String dir = savePath + "\\" + dir1 + "\\" + dir2;
    
            //File既可以代表文件也可以代表目录
    
            File file = new File(dir);
    
            if(!file.exists()){
    
                file.mkdirs();
    
            }
    
            return dir;
    
        }
    
    }

     

    5、如果在文件上传中IO流成为了系统的性能瓶颈,可以考虑使用NIO来提高性能。改进servlet代码如下:

    public class UploadHandleServlet2 extends HttpServlet{
    
    
    
        @Override
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
            //得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全
    
            String savePath = this.getServletContext().getRealPath("/WEB-INF/upload");
    
            //上传时生成的临时文件保存目录
    
            String tempPath = this.getServletContext().getRealPath("/WEB-INF/temp");
    
            File file = new File(tempPath);
    
            if(!file.exists()&&!file.isDirectory()){
    
                System.out.println("目录或文件不存在!");
    
                file.mkdir();
    
            }
    
            //消息提示
    
            String message = "";
    
            try {
    
                //使用Apache文件上传组件处理文件上传步骤:
    
                //1、创建一个DiskFileItemFactory工厂
    
                DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
    
                //设置工厂的缓冲区的大小,当上传的文件大小超过缓冲区的大小时,就会生成一个临时文件存放到指定的临时目录当中。
    
                diskFileItemFactory.setSizeThreshold(1024*100);
    
                //设置上传时生成的临时文件的保存目录
    
                diskFileItemFactory.setRepository(file);
    
                //2、创建一个文件上传解析器
    
                ServletFileUpload fileUpload = new ServletFileUpload(diskFileItemFactory);
    
                //解决上传文件名的中文乱码
    
                fileUpload.setHeaderEncoding("UTF-8");
    
                //监听文件上传进度
    
                fileUpload.setProgressListener(new ProgressListener(){
    
                    public void update(long pBytesRead, long pContentLength, int arg2) {
    
                        System.out.println("文件大小为:" + pContentLength + ",当前已处理:" + pBytesRead);
    
                    }
    
                });
    
                //3、判断提交上来的数据是否是上传表单的数据
    
                if(!fileUpload.isMultipartContent(request)){
    
                    //按照传统方式获取数据
    
                    return;
    
                }
    
                //设置上传单个文件的大小的最大值,目前是设置为1024*1024字节,也就是1MB
    
                fileUpload.setFileSizeMax(1024*1024);
    
                //设置上传文件总量的最大值,最大值=同时上传的多个文件的大小的最大值的和,目前设置为10MB
    
                fileUpload.setSizeMax(1024*1024*10);
    
                //4、使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List<FileItem>集合,每一个FileItem对应一个Form表单的输入项
    
                List<FileItem> list = fileUpload.parseRequest(request);
    
                for (FileItem item : list) {
    
                    //如果fileitem中封装的是普通输入项的数据
    
                    if(item.isFormField()){
    
                        String name = item.getFieldName();
    
                        //解决普通输入项的数据的中文乱码问题
    
                        String value = item.getString("UTF-8");
    
                        String value1 = new String(name.getBytes("iso8859-1"),"UTF-8");
    
                        System.out.println(name+"  "+value);
    
                        System.out.println(name+"  "+value1);
    
                    }else{
    
                        //如果fileitem中封装的是上传文件,得到上传的文件名称,
    
                        String fileName = item.getName();
    
                        System.out.println(fileName);
    
                        if(fileName==null||fileName.trim().equals("")){
    
                            continue;
    
                        }
    
                        //注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如:  c:\a\b\1.txt,而有些只是单纯的文件名,如:1.txt
    
                        //处理获取到的上传文件的文件名的路径部分,只保留文件名部分
    
                        fileName = fileName.substring(fileName.lastIndexOf(File.separator)+1);
    
                        //得到上传文件的扩展名
    
                        String fileExtName = fileName.substring(fileName.lastIndexOf(".")+1);
    
                        if("zip".equals(fileExtName)||"rar".equals(fileExtName)||"tar".equals(fileExtName)||"jar".equals(fileExtName)){
    
                            request.setAttribute("message", "上传文件的类型不符合!!!");
    
                            request.getRequestDispatcher("/message.jsp").forward(request, response);
    
                            return;
    
                        }
    
                        //如果需要限制上传的文件类型,那么可以通过文件的扩展名来判断上传的文件类型是否合法
    
                        System.out.println("上传文件的扩展名为:"+fileExtName);
    
                        //获取item中的上传文件的输入流
    
                        InputStream fis = item.getInputStream();
    
                        //得到文件保存的名称
    
                        fileName = mkFileName(fileName);
    
                        //得到文件保存的路径
    
                        String savePathStr = mkFilePath(savePath, fileName);
    
                        System.out.println("保存路径为:"+savePathStr);
    
                        //创建一个文件输出流
    
                        FileOutputStream fos = new FileOutputStream(savePathStr+File.separator+fileName);
    
                        //获取读通道
    
                        FileChannel readChannel = ((FileInputStream)fis).getChannel();
    
                        //获取读通道
    
                        FileChannel writeChannel = fos.getChannel();
    
                        //创建一个缓冲区
    
                        ByteBuffer buffer = ByteBuffer.allocate(1024);
    
                        //判断输入流中的数据是否已经读完的标识
    
                        int length = 0;
    
                        //循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据
    
                        while(true){
    
                            buffer.clear();
    
                            int len = readChannel.read(buffer);//读入数据
    
                            if(len < 0){
    
                                break;//读取完毕
    
                            }
    
                            buffer.flip();
    
                            writeChannel.write(buffer);//写入数据
    
                        }
    
                        //关闭输入流
    
                        fis.close();
    
                        //关闭输出流
    
                        fos.close();
    
                        //删除处理文件上传时生成的临时文件
    
                        item.delete();
    
                        message = "文件上传成功";
    
                    }
    
                }
    
            } catch (FileUploadBase.FileSizeLimitExceededException e) {
    
                e.printStackTrace();
    
                request.setAttribute("message", "单个文件超出最大值!!!");
    
                request.getRequestDispatcher("/message.jsp").forward(request, response);
    
                return;
    
            }catch (FileUploadBase.SizeLimitExceededException e) {
    
                e.printStackTrace();
    
                request.setAttribute("message", "上传文件的总的大小超出限制的最大值!!!");
    
                request.getRequestDispatcher("/message.jsp").forward(request, response);
    
                return;
    
            }catch (FileUploadException e) {
    
                // TODO Auto-generated catch block
    
                e.printStackTrace();
    
                message = "文件上传失败";
    
            }
    
            request.setAttribute("message",message);
    
            request.getRequestDispatcher("/message.jsp").forward(request, response);
    
        }
    
    
    
        @Override
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
            doGet(request, response);
    
        }
    
        //生成上传文件的文件名,文件名以:uuid+"_"+文件的原始名称
    
        public String mkFileName(String fileName){
    
            return UUID.randomUUID().toString()+"_"+fileName;
    
        }
    
        public String mkFilePath(String savePath,String fileName){
    
            //得到文件名的hashCode的值,得到的就是filename这个字符串对象在内存中的地址
    
            int hashcode = fileName.hashCode();
    
            int dir1 = hashcode&0xf;
    
            int dir2 = (hashcode&0xf0)>>4;
    
            //构造新的保存目录
    
            String dir = savePath + "\\" + dir1 + "\\" + dir2;
    
            //File既可以代表文件也可以代表目录
    
            File file = new File(dir);
    
            if(!file.exists()){
    
                file.mkdirs();
    
            }
    
            return dir;
    
        }
    
    }

     

    ·        文件下载

      1、列出提供下载的文件资源

      要将Web应用系统中的文件资源提供给用户进行下载,首先我们要有一个页面列出上传文件目录下的所有文件,当用户点击文件下载超链接时就进行下载操作,编写一个ListFileServlet,用于列出Web应用系统中所有下载文件。

      ListFileServlet代码如下

    public class ListFileServlet extends HttpServlet{
    
        @Override
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
            doPost(request, response);
    
        }
    
        @Override
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
            // TODO Auto-generated method stub
    
            //获取上传文件的目录
    
            String uploadFilePath = this.getServletContext().getRealPath("/WEB-INF/upload");
    
            //存储要下载的文件名
    
            Map<String, String> fileMap = new HashMap<String, String>();
    
            //递归遍历filepath目录下的所有文件和目录,将文件的文件名存储到map集合中
    
            fileList(new File(uploadFilePath),fileMap);
    
            //将Map集合发送到listfile.jsp页面进行显示
    
            request.setAttribute("fileMap", fileMap);
    
            request.getRequestDispatcher("/listfile.jsp").forward(request, response);
    
    
    
        }
    
        //递归遍历指定目录下的所有文件
    
        public void fileList(File file,Map fileMap){
    
            //如果file代表的不是一个文件,而是一个目录
    
            if(!file.isFile()){
    
                //列出该目录下的所有文件和目录
    
                File[] files = file.listFiles();
    
                //遍历files[]数组
    
                for (File file2 : files) {
    
                    System.out.println(file2.getName());
    
                    //递归
    
                    fileList(file2, fileMap);
    
                }
    
            }else{
    
                  /* 处理文件名,上传后的文件是以uuid_文件名的形式去重新命名的,去除文件名的uuid_部分
    
                     file.getName().indexOf("_")检索字符串中第一次出现"_"字符的位置,如果文件名类似于:9349249849-88343-8344_阿_凡_达.avi
    
                      那么file.getName().substring(file.getName().indexOf("_")+1)处理之后就可以得到阿_凡_达.avi部分
    
                  */
    
                String realName = file.getName().substring(file.getName().lastIndexOf("_")+1);
    
                //file.getName()得到的是文件的原始名称,这个名称是唯一的,因此可以作为key,realName是处理过后的名称,有可能会重复
    
                fileMap.put(file.getName(), realName);
    
            }
    
        }
    
    }

     

    说明一下,一般文件路径在数据库中保存,然后再数据库中查询结果在页面显示。

      listfile.jsp页面

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    
     <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    
     <!DOCTYPE HTML>
    
     <html>
    
       <head>
    
         <title>下载文件显示页面</title>
    
      </head>
    
      
    
       <body>
    
          <!-- 遍历Map集合 -->
    
         <c:forEach var="me" items="${fileMap}">
    
             <c:url value="/servlet/downLoadServlet" var="downurl">
    
                 <c:param name="filename" value="${me.key}"></c:param>
    
             </c:url>
    
             ${me.value}<a href="${downurl}">下载</a>
    
             <br/>
    
         </c:forEach>
    
       </body>
    
     </html>

     

    2、文件下载

      DownLoadServlet的代码如下:

    public class DownLoadServlet extends HttpServlet{
    
    
    
        @Override
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
            //得到要下载的文件名
    
            String fileName = request.getParameter("filename");
    
            fileName = new String(fileName.getBytes("iso8859-1"),"UTF-8");
    
            //上传的文件都是保存在/WEB-INF/upload目录下的子目录当中
    
            String fileSaveRootPath=this.getServletContext().getRealPath("/WEB-INF/upload");
    
            //        处理文件名
    
             String realname = fileName.substring(fileName.indexOf("_")+1);
    
            //通过文件名找出文件的所在目录
    
            String path = findFileSavePathByFileName(fileName,fileSaveRootPath);
    
            //得到要下载的文件
    
            File file = new File(path+File.separator+fileName);
    
            //如果文件不存在
    
            if(!file.exists()){
    
                request.setAttribute("message", "您要下载的资源已被删除!!");
    
                request.getRequestDispatcher("/message.jsp").forward(request, response);
    
                return;
    
            }
    
           
    
             //设置响应头,控制浏览器下载该文件
    
             response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(realname, "UTF-8"));
    
             //读取要下载的文件,保存到文件输入流
    
             FileInputStream fis = new FileInputStream(path + File.separator + fileName);
    
             //创建输出流
    
             OutputStream fos = response.getOutputStream();
    
             //设置缓存区
    
             ByteBuffer buffer = ByteBuffer.allocate(1024);
    
             //输入通道
    
             FileChannel readChannel = fis.getChannel();
    
             //输出通道
    
             FileChannel writeChannel = ((FileOutputStream)fos).getChannel();
    
             while(true){
    
                 buffer.clear();
    
                 int len = readChannel.read(buffer);//读入数据
    
                 if(len < 0){
    
                     break;//传输结束
    
                 }
    
                 buffer.flip();
    
                 writeChannel.write(buffer);//写入数据
    
             }
    
             //关闭输入流
    
             fis.close();
    
             //关闭输出流
    
             fos.close();
    
        }
    
       
    
        @Override
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
            doPost(request, response);
    
        }
    
        //通过文件名和存储上传文件根目录找出要下载的文件的所在路径
    
        public String findFileSavePathByFileName(String fileName,String fileSaveRootPath){
    
            int hashcode = fileName.hashCode();
    
            int dir1 = hashcode&0xf;
    
            int dir2 = (hashcode&0xf0)>>4;
    
            String dir = fileSaveRootPath + "\\" + dir1 + "\\" + dir2;
    
            File file = new File(dir);
    
            if(!file.exists()){
    
                file.mkdirs();
    
            }
    
            return dir;
    
        }
    
    }

     

    3、如果IO成为系统的瓶颈,可以考虑使用NIO来实现下载,提供系统性能,改进后的DownloadServlet代码如下:

    public class DownLoadServlet1 extends HttpServlet{
    
    
    
        @Override
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
            //得到要下载的文件名
    
            String fileName = request.getParameter("filename");
    
            fileName = new String(fileName.getBytes("iso8859-1"),"UTF-8");
    
            //上传的文件都是保存在/WEB-INF/upload目录下的子目录当中
    
            String fileSaveRootPath=this.getServletContext().getRealPath("/WEB-INF/upload");
    
            //        处理文件名
    
             String realname = fileName.substring(fileName.indexOf("_")+1);
    
            //通过文件名找出文件的所在目录
    
            String path = findFileSavePathByFileName(fileName,fileSaveRootPath);
    
            //得到要下载的文件
    
            File file = new File(path+File.separator+fileName);
    
            //如果文件不存在
    
            if(!file.exists()){
    
                request.setAttribute("message", "您要下载的资源已被删除!!");
    
                request.getRequestDispatcher("/message.jsp").forward(request, response);
    
                return;
    
            }
    
           
    
             //设置响应头,控制浏览器下载该文件
    
             response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(realname, "UTF-8"));
    
             //读取要下载的文件,保存到文件输入流
    
             FileInputStream in = new FileInputStream(path + File.separator + fileName);
    
             //创建输出流
    
             OutputStream os = response.getOutputStream();
    
             //设置缓存区
    
             byte[] bytes = new byte[1024];
    
             int len = 0;
    
             while((len = in.read(bytes))>0){
    
                 os.write(bytes);
    
             }
    
             //关闭输入流
    
             in.close();
    
             //关闭输出流
    
             os.close();
    
        }
    
       
    
        @Override
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
            doPost(request, response);
    
        }
    
        //通过文件名和存储上传文件根目录找出要下载的文件的所在路径
    
        public String findFileSavePathByFileName(String fileName,String fileSaveRootPath){
    
            int hashcode = fileName.hashCode();
    
            int dir1 = hashcode&0xf;
    
            int dir2 = (hashcode&0xf0)>>4;
    
            String dir = fileSaveRootPath + "\\" + dir1 + "\\" + dir2;
    
            File file = new File(dir);
    
            if(!file.exists()){
    
                file.mkdirs();
    
            }
    
            return dir;
    
        }
    
    }

    功能与效果展示:

    树形目录导航。您可以通过树型目录导航和路径导航栏快速跳转到指定目录。在跳转后树型目录将会自动选中当前的目录。

     

    路径导航,点击根目录按钮便可返根目录

     

    文件和目录重命名

     
     

    点击删除按钮

    说明: http://qqadapt.qpic.cn/adapt/0/a08d8c16-78a3-7ce5-c2cd-5df1e60fb8cc/800?pt=0&ek=1&kp=1&sce=0-12-12

    点击确定后,页面中的文件消失


     

     

     

    批量上传文件

     
     

    粘贴上传

    复制文件夹、文件或图片

    说明: http://qqadapt.qpic.cn/adapt/0/ab61b9d4-755b-ee18-376d-f4ac80ad6417/800?pt=0&ek=1&kp=1&sce=0-12-12

    在页面中选择好相应的上传目录,点击粘贴上传按钮,数据即可快速开始上传

    说明: http://qqadapt.qpic.cn/adapt/0/b9fa01e5-ebec-3887-6726-67dcbc1a77ef/800?pt=0&ek=1&kp=1&sce=0-12-12


     

     

     

    批量上传文件和文件夹

     

    数据库记录

     

    文件和目录下载

     

    批量下载

    同时选择多个需要下载的文件 

    然后点击下载按钮,设置下载目录文件夹

    说明: C:\Users\Administrator\Desktop\2222.png


     

     

    点击全部下载,开始下载

     

    自动加载未上传完的任务。在刷新浏览器或重启电脑后仍然可以自动加载未完成的任务。

     

     

    下载完成后打开我们设置的下载目录文件夹,发现需下载的文件或文件夹确认已下载成功,经确认文件夹内的内容与下载文件夹内容一致

    说明: http://qqadapt.qpic.cn/adapt/0/3224196a-396c-8ee1-b509-3179302fbd86/800?pt=0&ek=1&kp=1&sce=0-12-12

     

    数据库记录

     
     

     

    控件包下载:
    cab(x86):http://t.cn/Ai9pmG8S

    cab(x64):http://t.cn/Ai9pm04B

    xpi:http://t.cn/Ai9pubUc

    crx:http://t.cn/Ai9pmrcy

    exe:http://t.cn/Ai9puobe

     

    示例下载:

    asp.net:http://t.cn/Ai9pue4A

    jsp-eclipse:http://t.cn/Ai9p3LSx

    jsp-myeclipse:http://t.cn/Ai9p3IdC

    php: http://t.cn/Ai9p3CKQ

     

    在线教程:
    asp.net-文件管理器教程:http://j.mp/2MLoQWf

    jsp-文件管理器教程:http://j.mp/2WJ2Y1m

    php-文件管理器教程:http://j.mp/2MudPs3

    展开全文
  • Jvm虚拟机下载和安装教程

    万次阅读 2019-06-15 11:46:19
    Centos7.3下载和安装教程 ** 1.Centos下载 Centos是免费版,可以在官网上直接下载, 网址:https://www.centos.org/download/ DVD ISO:普通光盘完整安装版镜像,可离线安装到计算机硬盘上,包含大量的常用...

    **
    vmware workstation14 64下载
    网址:https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html
    在这里插入图片描述
    在这里插入图片描述
    安装:
    1、双击“VMware-workstation-full-14.0.0-6661328.exe”启动VMware Workstation 14 Pro安装程序;
    在这里插入图片描述
    在弹出的“欢迎”窗口中,点击“下一步”按钮进入下一步;
    在这里插入图片描述
    在弹出的“最终用户协议”窗口中,勾选“我接受许可协议中的条款”复选框,然后点击“下一步”按钮进入下一步;
    在这里插入图片描述
    在弹出的“自定义安装”窗口中,可以点击“更改”按钮选择VMware Workstation的安装目录(本教程中采用默认目录)。选定安装位置后,勾选“增强型键盘驱动程序”,然后点击“下一步”按钮进入下一步;
    在这里插入图片描述
    在弹出的“用户体验设置”窗口中,去掉“启动时检查产品更新”和“帮助完善VMware Workstation Pro(H)”复选框前的勾,然后点击“下一步”按钮进入下一步;
    在这里插入图片描述
    在弹出的“快捷方式”窗口中,直接点击“下一步”按钮进入下一步;
    在这里插入图片描述
    在弹出的“已准备好安装VMware Workstation Pro”窗口中,点击“安装”按钮开始安装;
    在这里插入图片描述

    等待VMware安装完毕后,在弹出的“安装向导已完成”窗口中,点击“完成”按钮完成安装;
    在这里插入图片描述在这里插入图片描述

    在弹出的“系统重启提示”窗口中,点击“是”按钮重启系统(这里也可以点击“否”按钮,等激活VMware Workstation 14 Pro后再重启。);
    在这里插入图片描述

    双击桌面上的“VMware Workstation Pro”图标,在弹出的“VMware Workstation 14激活”窗口中,输入许可证“YC592-8VF55-M81AZ-FWW5T-WVRV0”(解压VMware-workstation-full-14.0.0目录下的Crack.zip,打开解压后的_keys.txt,可以见到所有可用的许可证),然后点击“继续”按钮请求激活;
    在这里插入图片描述

    在弹出的“激活成功”窗口中,点击“完成”按钮完成软件激活;为您附上一个密钥
    :CG392-4PX5J-H816Z-HYZNG-PQRG2
    在这里插入图片描述

    软件成功激活之后,可以见到VMware Workstation 14 Pro的主界面。在该界面中,可以点击帮助菜单中的“关于”菜单,查看软件的激活信息;
    在这里插入图片描述
    3、CentOS安装

    点击创建新的虚拟机
    在这里插入图片描述

    选择自定义(高级)(C)选项,点击“下一步(N)>”
    在这里插入图片描述
    选择好centos7的镜像文件后,点击“下一步(N)>”
    在这里插入图片描述

    虚拟机名称(V):HadoopMaster,点击浏览,选择安装位置
    在这里插入图片描述
    处理器配置,可以更改几核cpu(注:这个占用的是你计算机实际的cpu,注意搭配,推荐1)
    在这里插入图片描述
    内存配置,推荐1G(注,占用计算机的实际内存)

    网络配置,选择NAT(一般为默认推荐选项)
    在这里插入图片描述
    接下来的三步直接点击下一步即可,都是一些推荐配置,直接下一步
    磁盘容量配置,默认20G,可以根据自己需求和实际硬盘盘符情况进行更改
    在这里插入图片描述
    这是刚刚配置的硬件信息,可以自定义硬件进行重新定义,点击下一步,如下所示
    在这里插入图片描述
    接着点击第一个CD/DVD(IDE),所下所示
    在这里插入图片描述
    11.接着点击开启虚拟机,便开始安装了,如下所示
    在这里插入图片描述
    然后用鼠标点击到该系统里,会发现鼠标箭头不见了,那就说明鼠标已经移动到里面的centos7系统里了,然后点击键盘的上下键,进行选择第一个install CentOS Linux 7,选择后点击回车键,就开始安装了,鼠标想回到windows界面的话按 ctrl + alt 键就可以了。如下所示
    在这里插入图片描述
    可以选择centos7系统语言,在此,taozi选择安装的是Engilist,(英语),因为觉得这样可以高大上一点!!!选择continue
    在这里插入图片描述
    点击选择安装的硬盘
    在这里插入图片描述
    如下所示,点击选择刚才创建的30g的虚拟硬盘存储
    在这里插入图片描述
    选择30g的虚拟硬盘
    在这里插入图片描述
    点击Done后,如下所示
    在这里插入图片描述
    点击DATE & TIME进行配置时间,选择Asia/Shanghai
    在这里插入图片描述
    返回如下,可以发现已经更改了时区
    在这里插入图片描述
    现在进行选择LANGUAGE SUPPORT,更改语言设置成简体中文,如下所示
    在这里插入图片描述默认是安装Minimal版,是命令行形式的,不是安装的桌面版的,现在点击SOFTWARE SELECTION,会出现下面的选项,选择GUI服务的即可
    在这里插入图片描述
    链接网络设置
    在这里插入图片描述
    点开后,将右上角的开关点开,会自动链接网络
    在这里插入图片描述
    在这里插入图片描述
    选择完桌面版,如下所示
    在这里插入图片描述
    点击Begin Installation
    在这里插入图片描述
    设置root密码(随意设置,但要记住)
    在这里插入图片描述
    设置完root密码后,如下所示
    在这里插入图片描述
    点击USERCREATION创建lyu用户,密码也是lyu(随意,但要记住)
    在这里插入图片描述
    28.创建完lyu用户后如下所示,等待安装完成
    在这里插入图片描述
    点击Reboot重启,完成安装
    在这里插入图片描述
    重启后发现还要进行一些设置
    在这里插入图片描述
    勾选同意
    在这里插入图片描述
    返回后发现已经accept license了
    在这里插入图片描述
    接着点击FINISHCONFIGURATION
    在这里插入图片描述
    登陆系统,至此,CentOS7系统安装完毕。
    在这里插入图片描述

    虚拟机安装完毕,下面是传输软件需要的话自行安装

    Windows中安装xshell和xftp传输软件
    1、下载xshell和xftp,一路点击“NEXT”安装完成,在windows桌面上会看到如下图的快捷方式。
    在这里插入图片描述
    在这里插入图片描述
    怎么查虚拟机IP地址
    在这里插入图片描述进入下图
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述转自https://blog.csdn.net/qq_42570879/article/details/828537081.Centos下载

    Centos是免费版,可以在官网上直接下载,
    网址:https://www.centos.org/download/

    展开全文
  • 触摸电话图标可返回到电话上包含zip文件提取文件的文件夹。 In our example, there is a new folder with the same name as the zip file. To access the extracted files, we touch this folder to open it. 在...
  • 1、下载解压缩,双击WinContig.exe打开软件;64位的请点击WinContig64.exe; 2、点击添加按纽,可以添加文件文件夹; 3、再右击可以整理所项目; 4、用户也可以另存配置文件到电脑中,方便下次整理。 ...
  • 所谓 7z SFX 是7ZIP的自解压模块,用于可生成自解压形式的exe可执行文件。由于7zip压缩率极高,所以7z SFX 在系统封装中采用十分广泛,但7zip自身的自解压创建功能过于简陋,所以有高手专门制作了7z SFX Builder。...
  • 文章目录01 前言1.1 基本...是否将IDM关联浏览器2.4 浏览器插件自动安装2.5 使用说明提示2.6 获取序列号03 辅助下载器M3U8下载3.1 为什么要下载辅助下载器3.2 下载3.3 使用教程:04 IDM支持的浏览器05 IDM功能介绍06
  • 此版本默认用冬至排盘法 排紫微斗数星盘。 特点: 可排:三合盘/飞星盘/四化盘、可真太阳时 ...2、本软件不需要安装,下载解压后运行YiPaiPan3.exe(或YiPaiPan3Loader.exe)就可运行软件(以系统管理员权限)
  • Git-2.10.0-64-bit.zip

    2021-02-22 18:19:49
    Git-2.10.0-64-bit.exe文件
  • You-Get–基于Python3的开源网络视频下载工具 CSDN GitHub You-Get–基于Python3的开源网络视频下载工具 AderXCoding/system/tools/you-get 本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议...
  • 1、JDK1.8的下载与安装 一、下载JDK 二、安装 2、IDEA的下载与安装 一、IDEA的下载 二、IDEA的安装 三、IDEA的配置与激活 3、MAVEN的下载安装与配置 一、下载 二、安装配置 4、Git的下载与安装 一、下载 ...
  • 它是Python编程语言Qt库的成功融合。Qt库是目前最强大的库之一。PyQt是由Phil Thompson 开发。PyQt是c++库,在python中使用这个库就必须要有接口,使用python能够调用C++代码,qt官方选择了sip这个python与qt的...
  • Qt Creator下载和安装(详细教程)

    万次阅读 2020-11-27 10:00:03
    目前主流使用的Qt库有Qt4和Qt5两个大版本,下面介绍其在Windows系统里的下载和安装。 一、Qt4开发环境下载安装 首先进入下载页面 http://www.qt.io/download/ 根据提示点击选项。 最后点击 “Get started”按钮后,...
  • 进入简体中文的下载列表,在这里又针对不同插件功能分为多个 ZIP 压缩包。 从列表中 单击 BabelLanguagePack_birt_zh_4.5.0.v20151128060001.zip 链接 , 下载完整版语言包,如图 9 所示。   图9 选择简体...
  • http://www.android-studio.org/1、首先下载Android studio安装包,可以从http://www.android-studio.org/,下载最新版本,这里采用3.0版本进行演示,对应安装包为android-studio-ide-171.4408382-windows.exe,...
  • VSCode下载安装配置Java环境

    千次阅读 2021-04-16 16:16:59
    vscode下载和安装一、vscode下载二、vscode安装 一、vscode下载 从官网上下载自己系统对应版本,建议下载.zip格式。 如我的电脑是Windows64位的,那么我下载的版本如下图所示: 下载下来后是一个压缩包(注意:请...
  • 2018.12.31 ... BackgroundDownload  针对移动平台后台下载的官方插件, 即使应用程序进入后台或被操作系统退出也会继续执行。可以在下次启动应用程序时选择下载...支持的平台有:Android,iOS通用Windows平台。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 31,646
精华内容 12,658
关键字:

下载exe和下载zip选哪个