<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Linux 命令 on 庞玉栋个人博客</title><link>https://pangyd.com/tags/linux-%E5%91%BD%E4%BB%A4/</link><description>Recent content in Linux 命令 on 庞玉栋个人博客</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Mon, 06 May 2019 16:34:53 +0800</lastBuildDate><atom:link href="https://pangyd.com/tags/linux-%E5%91%BD%E4%BB%A4/index.xml" rel="self" type="application/rss+xml"/><item><title>利用Python和Selenium使酒店Wifi免费</title><link>https://pangyd.com/post/212-pythonseleniumwifi/</link><pubDate>Fri, 22 Mar 2019 13:08:55 +0800</pubDate><guid>https://pangyd.com/post/212-pythonseleniumwifi/</guid><description>&lt;p align="left">最近我休年假了，并决定在假期去拜访朋友。我在一家旅馆住了几天，令我惊讶的是，酒店的wifi收费。这在2018年，你能想象吗？&lt;/p>&lt;p align="left">他们也不是那么冷酷。你看，这些慷慨的人让你用wifi20分钟。整整20分钟。这几乎是Minecraft视频的一半。&lt;/p>&lt;p align="left">如果他们让每个设备在有限的时间内使用互联网，必须有识别每个设备的方法。路由器通过设备的MAC地址来区分设备。幸运的是，我们可以很容易地改变我们的MAC地址。&lt;/p>&lt;p align="left">使用macchanger&lt;/p>&lt;p align="left">有一个非常有用的命令行工具，叫做macchanger。它允许你手动更改、随机化和恢复设备的MAC地址。这里是想定期随机化我们的MAC（每20分钟），以便无限期地使用免费Wifi。&lt;/p>&lt;p align="left">需要运行3个小命令。这是必需的，因为当网络接口连接到路由器时，macchanger无法工作。&lt;/p>&lt;p align="left">&lt;img src="https://pangyd.com/uploads/2019/03/7440792922ad4819.png" alt="">&lt;/p>&lt;p align="left">在上面的命令中，wlp3s0是我的网络接口的名称。你可以通过运行&lt;span>ip a&lt;/span>找到你的网络接口的名称。如果你运行这些命令，可以启动浏览器，然后你会看到要求你付费或试用20分钟的页面。时间结束后，你可以再次运行命令并继续执行。&lt;/p>&lt;p align="left">但这是体力劳动，每小时做3次太重复了。嗯。自动化重复内容的好工具是什么？&lt;/p>&lt;p align="left">使用Selenium&lt;/p>&lt;p align="left">首先，不使用这些命令。使用os模块，我们可以从脚本运行macchanger。&lt;/p>&lt;p align="left">&lt;/p></description></item><item><title>python的redis简单使用</title><link>https://pangyd.com/post/203-pythonredis/</link><pubDate>Mon, 05 Nov 2018 06:54:40 +0800</pubDate><guid>https://pangyd.com/post/203-pythonredis/</guid><description>&lt;p>安装的Python版本&amp;nbsp;3.6.1&lt;/p>
&lt;p>redis安装的2.8&lt;/p>
&lt;p>安装redis模块&lt;/p>
&lt;div class="cnblogs_code">
&lt;pre>pip install redis&lt;/pre>
&lt;/div>
&lt;p>&lt;img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='120'%3E%3Crect width='480' height='120' fill='%230E1012' stroke='%231B1E22'/%3E%3Ctext x='240' y='66' fill='%235C6069' font-family='monospace' font-size='13' text-anchor='middle'%3E%5B%E5%8E%9F%E5%9B%BE%E5%B7%B2%E5%A4%B1%E6%95%88%5D%3C/text%3E%3C/svg%3E" alt="">&lt;/p>
&lt;p>简单使用&lt;/p>
&lt;p>redis-test.py&lt;/p>
&lt;div class="cnblogs_code">
&lt;pre>&lt;span>import&lt;/span>&lt;span> redis
r&lt;/span>=redis.Redis(host=&lt;span>'&lt;/span>&lt;span>127.0.0.1&lt;/span>&lt;span>'&lt;/span>,port=6609,db=&lt;span>0)
r.set(&lt;/span>&lt;span>'&lt;/span>&lt;span>name&lt;/span>&lt;span>'&lt;/span>,&lt;span>'&lt;/span>&lt;span>baby&lt;/span>&lt;span>'&lt;/span>&lt;span>)
&lt;/span>&lt;span>print&lt;/span>(r.get(&lt;span>'&lt;/span>&lt;span>name&lt;/span>&lt;span>'&lt;/span>&lt;span>))
&lt;/span>&lt;span>print&lt;/span>(r.dbsize())&lt;/pre>
&lt;/div>
&lt;p>&lt;img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='120'%3E%3Crect width='480' height='120' fill='%230E1012' stroke='%231B1E22'/%3E%3Ctext x='240' y='66' fill='%235C6069' font-family='monospace' font-size='13' text-anchor='middle'%3E%5B%E5%8E%9F%E5%9B%BE%E5%B7%B2%E5%A4%B1%E6%95%88%5D%3C/text%3E%3C/svg%3E" alt="">&lt;/p>
&lt;p>使用connection pool来管理对一个redis server的所有连接，避免每次建立、释放连接的开销。&lt;/p>
&lt;p>默认，每个Redis实例都会维护一个自己的连接池。&lt;/p>
&lt;p>可以直接建立一个连接池，然后作为参数 Redis，这样就可以实现多个Redis实例共享一个连接池&lt;/p>
&lt;p>使用连接池&lt;/p>
&lt;div class="cnblogs_code">
&lt;pre> &lt;span>import&lt;/span>&lt;span> redis
 pool &lt;/span>= redis.ConnectionPool(host=&lt;span>'&lt;/span>&lt;span>127.0.0.1&lt;/span>&lt;span>'&lt;/span>,port=6609&lt;span>)
 r &lt;/span>= redis.Redis(connection_pool=&lt;span>pool)
 r.set(&lt;/span>&lt;span>'&lt;/span>&lt;span>name1&lt;/span>&lt;span>'&lt;/span>,&lt;span>'&lt;/span>&lt;span>lili&lt;/span>&lt;span>'&lt;/span>&lt;span>)
 &lt;/span>&lt;span>print&lt;/span>(r.get(&lt;span>'&lt;/span>&lt;span>name1&lt;/span>&lt;span>'&lt;/span>))&lt;/pre>
&lt;/div>
&lt;p>&amp;nbsp;&lt;/p>
&lt;p>应用：页面点击数&lt;/p>
&lt;p>　　需要对一系列页面记录点击次数，如果使用关系数据库来存储点击，可能存在大量的行级锁争用&lt;/p>
&lt;p>　　(1)当redis服务器启动时，可以从关系数据库读入点击数的初始值&lt;/p>
&lt;div class="cnblogs_code">
&lt;pre>&lt;span>import&lt;/span>&lt;span> redis
r&lt;/span>=redis.Redis(host=&lt;span>'&lt;/span>&lt;span>127.0.0.1&lt;/span>&lt;span>'&lt;/span>,port=6609,db=&lt;span>0)
r.set(&lt;/span>&lt;span>'&lt;/span>&lt;span>visits:100&lt;/span>&lt;span>'&lt;/span>,999)&lt;/pre>
&lt;/div>
&lt;p>　　(2)有人访问页面时&lt;/p>
&lt;div class="cnblogs_code">
&lt;pre>r.incr(&lt;span>'&lt;/span>&lt;span>visits:100&lt;/span>&lt;span>'&lt;/span>)&lt;/pre>
&lt;/div>
&lt;p>　　(3)获取页面点击数&lt;/p>
&lt;div class="cnblogs_code">
&lt;pre>r.get(&lt;span>'&lt;/span>&lt;span>visits:100&lt;/span>&lt;span>'&lt;/span>)&lt;/pre>
&lt;/div>
&lt;p>Pipeline 是 StrictRedis 类的子类，支持在一个请求里发送缓冲的多个命令。通过减少客户端和服务器之间往来的数据包，可以大大提高命令组的性能&lt;/p>
&lt;p>简单使用&lt;/p>
&lt;div class="cnblogs_code">
&lt;pre>&amp;gt;&amp;gt;&amp;gt;&lt;span>import&lt;/span>&lt;span> redis 
&lt;/span>&amp;gt;&amp;gt;&amp;gt;r=redis.Redis(host=&lt;span>'&lt;/span>&lt;span>127.0.0.1&lt;/span>&lt;span>'&lt;/span>,port=6609,db=&lt;span>0)
&lt;/span>&amp;gt;&amp;gt;&amp;gt; r.set(&lt;span>'&lt;/span>&lt;span>name&lt;/span>&lt;span>'&lt;/span>, &lt;span>'&lt;/span>&lt;span>baby&lt;/span>&lt;span>'&lt;/span>&lt;span>)
&lt;/span>&amp;gt;&amp;gt;&amp;gt; pipe =&lt;span> r.pipeline()
&lt;/span>&amp;gt;&amp;gt;&amp;gt; pipe.set(&lt;span>'&lt;/span>&lt;span>birthday&lt;/span>&lt;span>'&lt;/span>, &lt;span>'&lt;/span>&lt;span>2010&lt;/span>&lt;span>'&lt;/span>&lt;span>)
&lt;/span>&amp;gt;&amp;gt;&amp;gt; pipe.get(&lt;span>'&lt;/span>&lt;span>name&lt;/span>&lt;span>'&lt;/span>&lt;span>)
&lt;/span>&amp;gt;&amp;gt;&amp;gt; pipe.execute()&lt;/pre>
&lt;/div>
&lt;p>为了方便使用，所有缓冲到 pipeline 的命令返回 pipeline 对象本身&lt;/p></description></item><item><title>如何从命令提示符运行Java程序</title><link>https://pangyd.com/post/193-java/</link><pubDate>Sat, 28 Jul 2018 13:51:21 +0800</pubDate><guid>https://pangyd.com/post/193-java/</guid><description>&lt;div class="left" data-reactid=".0.1.0">&lt;div data-reactid=".0.1.0.0">&lt;div class="post" data-reactid=".0.1.0.0.0">&lt;div class="post-main clearfix" data-reactid=".0.1.0.0.0.1">&lt;div class="content-wrapper" id="post_content_wrapper" data-reactid=".0.1.0.0.0.1.1">&lt;div class="content rich" data-reactid=".0.1.0.0.0.1.1.1">&lt;p>&lt;img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='120'%3E%3Crect width='480' height='120' fill='%230E1012' stroke='%231B1E22'/%3E%3Ctext x='240' y='66' fill='%235C6069' font-family='monospace' font-size='13' text-anchor='middle'%3E%5B%E5%8E%9F%E5%9B%BE%E5%B7%B2%E5%A4%B1%E6%95%88%5D%3C/text%3E%3C/svg%3E">&lt;/p>&lt;p>Java是最常用的编程语言之一。 它也是一个IDE密集型编程语言，与Eclipse紧密集成。 如果您刚开始学习Java，下面是帮助您从命令提示符开始运行Java应用程序（在Windows中）的基本指南。&lt;/p>&lt;p>&lt;span>安装Java开发工具包（JDK）&lt;/span>&lt;/p>&lt;p>在您的计算机上运行Java程序之前，您需要安装一个Java编译器。它附带了Java开发工具包或JDK。它是Java在任何平台上开发的基本工具。JDK与Java运行时环境(或JRE)不一样，如果您在您的机器上使用过Java应用程序，您已经安装了它。&lt;/p>&lt;p>1．从Oracle的网站上下载JDK。确保不要下载到服务器版本的JRE。&lt;/p>&lt;p>&lt;img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='120'%3E%3Crect width='480' height='120' fill='%230E1012' stroke='%231B1E22'/%3E%3Ctext x='240' y='66' fill='%235C6069' font-family='monospace' font-size='13' text-anchor='middle'%3E%5B%E5%8E%9F%E5%9B%BE%E5%B7%B2%E5%A4%B1%E6%95%88%5D%3C/text%3E%3C/svg%3E">&lt;/p>&lt;p>2．确保您获取了开发工具包的Windows版本。&lt;/p>&lt;p>&lt;img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='120'%3E%3Crect width='480' height='120' fill='%230E1012' stroke='%231B1E22'/%3E%3Ctext x='240' y='66' fill='%235C6069' font-family='monospace' font-size='13' text-anchor='middle'%3E%5B%E5%8E%9F%E5%9B%BE%E5%B7%B2%E5%A4%B1%E6%95%88%5D%3C/text%3E%3C/svg%3E">&lt;/p>&lt;p>3.正常运行安装程序。&lt;/p>&lt;p>&lt;span>从命令提示符运行Java程序&lt;/span>&lt;/p>&lt;p>1.使用记事本或其他文本编辑器创建一个如下所示的简单Java程序。 请确保以扩展名“.java”而不是“.txt”保存文件。&lt;/p>&lt;p>&lt;img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='120'%3E%3Crect width='480' height='120' fill='%230E1012' stroke='%231B1E22'/%3E%3Ctext x='240' y='66' fill='%235C6069' font-family='monospace' font-size='13' text-anchor='middle'%3E%5B%E5%8E%9F%E5%9B%BE%E5%B7%B2%E5%A4%B1%E6%95%88%5D%3C/text%3E%3C/svg%3E">&lt;/p>&lt;p>2.从开始菜单打开命令提示符。 您也可以按Win R，然后在运行字段中输入cmd.exe。&lt;/p>&lt;p>&lt;img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='120'%3E%3Crect width='480' height='120' fill='%230E1012' stroke='%231B1E22'/%3E%3Ctext x='240' y='66' fill='%235C6069' font-family='monospace' font-size='13' text-anchor='middle'%3E%5B%E5%8E%9F%E5%9B%BE%E5%B7%B2%E5%A4%B1%E6%95%88%5D%3C/text%3E%3C/svg%3E">&lt;/p>&lt;p>3.使用cd命令将工作目录更改为包含Java程序的目录。 我保存在我的“脚本”文件夹中，但是您可以将您的文件保存在系统中的任何位置。&lt;/p>&lt;p>&lt;img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='120'%3E%3Crect width='480' height='120' fill='%230E1012' stroke='%231B1E22'/%3E%3Ctext x='240' y='66' fill='%235C6069' font-family='monospace' font-size='13' text-anchor='middle'%3E%5B%E5%8E%9F%E5%9B%BE%E5%B7%B2%E5%A4%B1%E6%95%88%5D%3C/text%3E%3C/svg%3E">&lt;/p>&lt;p>4．在您的计算机上定位到Java开发工具包(JDK)版本的路径。如果你运行64位Windows，那通常是在“C：\ Program Files \ Java”中。&lt;/p>&lt;p>&lt;img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='120'%3E%3Crect width='480' height='120' fill='%230E1012' stroke='%231B1E22'/%3E%3Ctext x='240' y='66' fill='%235C6069' font-family='monospace' font-size='13' text-anchor='middle'%3E%5B%E5%8E%9F%E5%9B%BE%E5%B7%B2%E5%A4%B1%E6%95%88%5D%3C/text%3E%3C/svg%3E">&lt;/p>&lt;p>5.使用“set”命令设置JDK的路径，如下所示：&lt;/p>&lt;p>&lt;img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='120'%3E%3Crect width='480' height='120' fill='%230E1012' stroke='%231B1E22'/%3E%3Ctext x='240' y='66' fill='%235C6069' font-family='monospace' font-size='13' text-anchor='middle'%3E%5B%E5%8E%9F%E5%9B%BE%E5%B7%B2%E5%A4%B1%E6%95%88%5D%3C/text%3E%3C/svg%3E">&lt;/p>&lt;p>您可能需要更改目录路径以反映当前版本的Java。确保您使用的是Java开发工具包(JDK)目录，并指向“bin”文件夹。Java运行时环境(JRE)文件夹也包含一个“bin”文件夹，但不包含Java编译器。如果在编译过程中出现错误，请确保使用正确的目录路径。&lt;/p>&lt;p>6.使用javac命令编译Java程序，如下所示：&lt;/p>&lt;p>&lt;img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='120'%3E%3Crect width='480' height='120' fill='%230E1012' stroke='%231B1E22'/%3E%3Ctext x='240' y='66' fill='%235C6069' font-family='monospace' font-size='13' text-anchor='middle'%3E%5B%E5%8E%9F%E5%9B%BE%E5%B7%B2%E5%A4%B1%E6%95%88%5D%3C/text%3E%3C/svg%3E">&lt;/p>&lt;p>7.你应该看到什么都没有发生。 但是，如果您使用dir命令，则会在您的目录中以“.class”扩展名结尾注意到一个新文件。 这表示程序已经编译完成。&lt;/p></description></item><item><title>深入理解Java虚拟机到底是什么</title><link>https://pangyd.com/post/180-java/</link><pubDate>Fri, 24 Nov 2017 22:54:49 +0800</pubDate><guid>https://pangyd.com/post/180-java/</guid><description>&lt;p>什么是Java虚拟机&lt;/p>&lt;div class="content rich" data-reactid=".0.1.0.0.0.1.1.1">&lt;p>作为一个Java程序员，我们每天都在写Java代码，我们写的代码都是在一个叫做Java虚拟机的东西上执行的。但是如果要问什么是虚拟机，恐怕很多人就会模棱两可了。在本文中，我会写下我对虚拟机的理解。因为能力所限，可能有些地方描述的不够欠当。如果你有不同的理解，欢迎交流。&lt;/p>&lt;p>我们都知道java程序必须在虚拟机上运行。那么虚拟机到底是什么呢？先看网上搜索到的比较靠谱的解释：&lt;/p>&lt;p>虚拟机是一种抽象化的计算机，通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构，如处理器、堆栈、寄存器等，还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息，使得Java程序只需生成在Java虚拟机上运行的目标代码（字节码），就可以在多种平台上不加修改地运行。&lt;/p>&lt;p>这种解释应该算是正确的，但是只描述了虚拟机的外部行为和功能，并没有针对内部原理做出说明。一般情况下我们不需要知道虚拟机的运行原理，只要专注写java代码就可以了，这也正是虚拟机之所以存在的原因--屏蔽底层操作系统平台的不同并且减少基于原生语言开发的复杂性，使java这门语言能够跨各种平台（只要虚拟机厂商在特定平台上实现了虚拟机），并且简单易用。这些都是虚拟机的外部特性，但是从这些信息来解释虚拟机，未免太笼统了，无法让我们知道内部原理。&lt;/p>&lt;p>从进程的角度解释JVM&lt;/p>&lt;p>让我们尝试从操作系统的层面来理解虚拟机。我们知道，虚拟机是运行在操作系统之中的，那么什么东西才能在操作系统中运行呢？当然是进程，因为进程是操作系统中的执行单位。可以这样理解，当它在运行的时候，它就是一个操作系统中的进程实例，当它没有在运行时（作为可执行文件存放于文件系统中），可以把它叫做程序。&lt;/p>&lt;p>对命令行比较熟悉的同学，都知道其实一个命令对应一个可执行的二进制文件，当敲下这个命令并且回车后，就会创建一个进程，加载对应的可执行文件到进程的地址空间中，并且执行其中的指令。下面对比C语言和Java语言的HelloWorld程序来说明问题。&lt;/p>&lt;p>首先编写C语言版的HelloWorld程序。&lt;/p>&lt;p>&lt;span>[cpp]&lt;/span>view plain copy&lt;/p>&lt;p>#include&lt;/p>&lt;p>#include&lt;/p>&lt;p>int main(void) {&lt;/p>&lt;p>printf("hello world\n");&lt;/p>&lt;p>return 0;&lt;/p>&lt;p>}&lt;/p>&lt;p>编译C语言版的HelloWorld程序：&lt;/p>&lt;p>&lt;span>[plain]&lt;/span>view plain copy&lt;/p>&lt;p>gcc HelloWorld.c -o HelloWorld&lt;/p>&lt;p>运行C语言版的HelloWorld程序：&lt;/p>&lt;p>&lt;span>[plain]&lt;/span>view plain copy&lt;/p>&lt;p>zhangjg@linux:/deve/workspace/HelloWorld/src$ ./HelloWorld&lt;/p>&lt;p>hello world&lt;/p>&lt;p>gcc编译器编译后的文件直接就是可被操作系统识别的二进制可执行文件，当我们在命令行中敲下 ./HelloWorld这条命令的时候， 直接创建一个进程， 并且将可执行文件加载到进程的地址空间中， 执行文件中的指令。&lt;/p>&lt;p>作为对比， 我们看一下Java版HelloWord程序的编译和执行形式。&lt;/p>&lt;p>首先编写源文件HelloWord.java ：&lt;/p>&lt;p>&lt;span>[java]&lt;/span>view plain copy&lt;/p>&lt;p>public class HelloWorld {&lt;/p>&lt;p>public static void main(String[] args) {&lt;/p>&lt;p>}&lt;/p>&lt;p>}&lt;/p>&lt;p>编译Java版的HelloWorld程序：&lt;/p>&lt;p>&lt;span>[java]&lt;/span>view plain copy&lt;/p>&lt;p>zhangjg@linux:/deve/workspace/HelloJava/src$ javac HelloWorld.java&lt;/p>&lt;p>zhangjg@linux:/deve/workspace/HelloJava/src$ ls&lt;/p>&lt;p>HelloWorld.class HelloWorld.java&lt;/p></description></item><item><title>Java在各个操作系统中的安装方式</title><link>https://pangyd.com/post/150-java/</link><pubDate>Mon, 30 Oct 2017 17:43:48 +0800</pubDate><guid>https://pangyd.com/post/150-java/</guid><description>&lt;p>&lt;br>&lt;/p>&lt;div class="content rich" data-reactid=".1colohowohs.1.0.0.0.1.1.1">&lt;p>&lt;span>&lt;img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='120'%3E%3Crect width='480' height='120' fill='%230E1012' stroke='%231B1E22'/%3E%3Ctext x='240' y='66' fill='%235C6069' font-family='monospace' font-size='13' text-anchor='middle'%3E%5B%E5%8E%9F%E5%9B%BE%E5%B7%B2%E5%A4%B1%E6%95%88%5D%3C/text%3E%3C/svg%3E" img_width="640" img_height="360" alt="java逆天攻略：快速进入大数据开发核心技术" inline="0">&lt;/span>&lt;/p>&lt;p>&lt;span>前言&lt;/span>&lt;/p>&lt;p>&lt;span>Java安装应该是件非常简单的事情，不知何时在Oracle官方下载JDK时，竟然强制要求用户登陆。这样就不能通过Linux命令wget下载了，真是有点让人火大。&lt;/span>&lt;/p>&lt;p>&lt;span>想了个办法破解这种恶心的cookies验证行为！&lt;/span>&lt;/p>&lt;blockquote>&lt;p>&lt;span>对大数据感兴趣的朋友可以加群大数据视频学习交流群 675590728&lt;/span>&lt;/p>&lt;/blockquote>&lt;p>&lt;span>目录&lt;/span>&lt;/p>&lt;ul class=" list-paddingleft-2">&lt;li>&lt;p>&lt;span>Java在Windows中安装&lt;/span>&lt;/p>&lt;/li>&lt;li>&lt;p>&lt;span>Java在Linux Ubuntu中安装&lt;/span>&lt;/p>&lt;/li>&lt;/ul>&lt;p>&lt;span>1 Java在Windows中安装&lt;/span>&lt;/p>&lt;p>&lt;span>Java环境安装，是指Java开发环境的安装，包括JDK安装和Java的环境配置。在Windows中，很多的Java应用通过JRE就可以运行。但对Java的开发者来说，我们需要安装JDK，必须Oracle SUN官方发布的JDK。&lt;/span>&lt;/p>&lt;blockquote>&lt;p>&lt;span>在Windows系统上安装JDK是件非常简单的事情，对大数据感兴趣的朋友可以加群大数据视频学习交流群 675590728&lt;/span>&lt;/p>&lt;/blockquote>&lt;p>&lt;span>大家可以下载最新版本的Java SE 8，或者较早的JDK版本。本文中使用的是1.6.0_45版本的JDK。&lt;/span>&lt;/p>&lt;p>&lt;span>下载后，双击安装。我安装在目录: D:	oolkitjavajdk6&lt;/span>&lt;/p>&lt;p>&lt;span>安装好JDK后，配置环境变量：&lt;/span>&lt;/p>&lt;p>&lt;span>选择：控制面板 –&amp;gt; 系统和安全 –&amp;gt; 系统属性 –&amp;gt; 高级 –&amp;gt; 环境变量&lt;/span>&lt;/p>&lt;p>&lt;span>&lt;img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='120'%3E%3Crect width='480' height='120' fill='%230E1012' stroke='%231B1E22'/%3E%3Ctext x='240' y='66' fill='%235C6069' font-family='monospace' font-size='13' text-anchor='middle'%3E%5B%E5%8E%9F%E5%9B%BE%E5%B7%B2%E5%A4%B1%E6%95%88%5D%3C/text%3E%3C/svg%3E" img_width="821" img_height="720" alt="java逆天攻略：快速进入大数据开发核心技术" inline="0">&lt;/span>&lt;/p>&lt;pre>#&amp;nbsp;新建JAVA_HOME变量JAVA_HOME=D:	oolkitjavajdk6#&amp;nbsp;新建PATH变量PATH=D:&amp;nbsp;oolkitjavajdk6in&lt;/pre>&lt;p>&lt;span>注：如果PATH变量已存在，则在最后增加JDK的路径，用分号(;)与上个配置做分隔。&lt;/span>&lt;/p>&lt;p>&lt;span>保存后，打开CMD命令窗口，测试Java的命令行操作。&lt;/span>&lt;/p>&lt;pre>#&amp;nbsp;查看Java安装版本~&amp;nbsp;C:UsersAdministrator&amp;gt;java&amp;nbsp;-versionjava&amp;nbsp;version&amp;nbsp;"1.6.0_45"Java(TM)&amp;nbsp;SE&amp;nbsp;Runtime&amp;nbsp;Environment&amp;nbsp;(build&amp;nbsp;1.6.0_45-b06)Java&amp;nbsp;HotSpot(TM)&amp;nbsp;64-Bit&amp;nbsp;Server&amp;nbsp;VM&amp;nbsp;(build&amp;nbsp;20.45-b01,&amp;nbsp;mixed&amp;nbsp;mode)#&amp;nbsp;测试Java命令~&amp;nbsp;C:UsersAdministrator&amp;gt;javaUsage:&amp;nbsp;java&amp;nbsp;[-options]&amp;nbsp;class&amp;nbsp;[args...]&amp;nbsp;(to&amp;nbsp;execute&amp;nbsp;a&amp;nbsp;class)&amp;nbsp;or&amp;nbsp;java&amp;nbsp;[-options]&amp;nbsp;-jar&amp;nbsp;jarfile&amp;nbsp;[args...]&amp;nbsp;(to&amp;nbsp;execute&amp;nbsp;a&amp;nbsp;jar&amp;nbsp;file)where&amp;nbsp;options&amp;nbsp;include:&amp;nbsp;-server&amp;nbsp;to&amp;nbsp;select&amp;nbsp;the&amp;nbsp;"server"&amp;nbsp;VM&amp;nbsp;-hotspot&amp;nbsp;is&amp;nbsp;a&amp;nbsp;synonym&amp;nbsp;for&amp;nbsp;the&amp;nbsp;"server"&amp;nbsp;VM&amp;nbsp;[deprecated]&amp;nbsp;The&amp;nbsp;default&amp;nbsp;VM&amp;nbsp;is&amp;nbsp;server.&amp;nbsp;-cp-classpathA&amp;nbsp;;&amp;nbsp;separated&amp;nbsp;list&amp;nbsp;of&amp;nbsp;directories,&amp;nbsp;JAR&amp;nbsp;archives,&amp;nbsp;and&amp;nbsp;ZIP&amp;nbsp;archives&amp;nbsp;to&amp;nbsp;search&amp;nbsp;for&amp;nbsp;class&amp;nbsp;files.&amp;nbsp;-D=set&amp;nbsp;a&amp;nbsp;system&amp;nbsp;property&amp;nbsp;-verbose[:class|gc|jni]&amp;nbsp;enable&amp;nbsp;verbose&amp;nbsp;output&amp;nbsp;-version&amp;nbsp;print&amp;nbsp;product&amp;nbsp;version&amp;nbsp;and&amp;nbsp;exit&amp;nbsp;-version:require&amp;nbsp;the&amp;nbsp;specified&amp;nbsp;version&amp;nbsp;to&amp;nbsp;run&amp;nbsp;-showversion&amp;nbsp;print&amp;nbsp;product&amp;nbsp;version&amp;nbsp;and&amp;nbsp;continue&amp;nbsp;-jre-restrict-search&amp;nbsp;|&amp;nbsp;-jre-no-restrict-search&amp;nbsp;include/exclude&amp;nbsp;user&amp;nbsp;private&amp;nbsp;JREs&amp;nbsp;in&amp;nbsp;the&amp;nbsp;version&amp;nbsp;search&amp;nbsp;-?&amp;nbsp;-help&amp;nbsp;print&amp;nbsp;this&amp;nbsp;help&amp;nbsp;message&amp;nbsp;-X&amp;nbsp;print&amp;nbsp;help&amp;nbsp;on&amp;nbsp;non-standard&amp;nbsp;options&amp;nbsp;-ea[:...|:]&amp;nbsp;-enableassertions[:...|:]&amp;nbsp;enable&amp;nbsp;assertions&amp;nbsp;-da[:...|:]&amp;nbsp;-disableassertions[:...|:]&amp;nbsp;disable&amp;nbsp;assertions&amp;nbsp;-esa&amp;nbsp;|&amp;nbsp;-enablesystemassertions&amp;nbsp;enable&amp;nbsp;system&amp;nbsp;assertions&amp;nbsp;-dsa&amp;nbsp;|&amp;nbsp;-disablesystemassertions&amp;nbsp;disable&amp;nbsp;system&amp;nbsp;assertions&amp;nbsp;-agentlib:[=]&amp;nbsp;load&amp;nbsp;native&amp;nbsp;agent&amp;nbsp;library,&amp;nbsp;e.g.&amp;nbsp;-agentlib:hprof&amp;nbsp;see&amp;nbsp;also,&amp;nbsp;-agentlib:jdwp=help&amp;nbsp;and&amp;nbsp;-agentlib:hprof=help&amp;nbsp;-agentpath:[=]&amp;nbsp;load&amp;nbsp;native&amp;nbsp;agent&amp;nbsp;library&amp;nbsp;by&amp;nbsp;full&amp;nbsp;pathname&amp;nbsp;-javaagent:[=]&amp;nbsp;load&amp;nbsp;Java&amp;nbsp;programming&amp;nbsp;language&amp;nbsp;agent,&amp;nbsp;see&amp;nbsp;java.lang.instrument&amp;nbsp;-splash:show&amp;nbsp;splash&amp;nbsp;screen&amp;nbsp;with&amp;nbsp;specified&amp;nbsp;image#&amp;nbsp;测试Javac命令~&amp;nbsp;C:UsersAdministrator&amp;gt;javac用法：javac&amp;nbsp;&amp;lt;选项&amp;gt;&amp;nbsp;&amp;lt;源文件&amp;gt;其中，可能的选项包括：&amp;nbsp;-g&amp;nbsp;生成所有调试信息&amp;nbsp;-g:none&amp;nbsp;不生成任何调试信息&amp;nbsp;-g:{lines,vars,source}&amp;nbsp;只生成某些调试信息&amp;nbsp;-nowarn&amp;nbsp;不生成任何警告&amp;nbsp;-verbose&amp;nbsp;输出有关编译器正在执行的操作的消息&amp;nbsp;-deprecation&amp;nbsp;输出使用已过时的&amp;nbsp;API&amp;nbsp;的源位置&amp;nbsp;-classpath&amp;nbsp;&amp;lt;路径&amp;gt;&amp;nbsp;指定查找用户类文件和注释处理程序的位置&amp;nbsp;-cp&amp;nbsp;&amp;lt;路径&amp;gt;&amp;nbsp;指定查找用户类文件和注释处理程序的位置&amp;nbsp;-sourcepath&amp;nbsp;&amp;lt;路径&amp;gt;&amp;nbsp;指定查找输入源文件的位置&amp;nbsp;-bootclasspath&amp;nbsp;&amp;lt;路径&amp;gt;&amp;nbsp;覆盖引导类文件的位置&amp;nbsp;-extdirs&amp;nbsp;&amp;lt;目录&amp;gt;&amp;nbsp;覆盖安装的扩展目录的位置&amp;nbsp;-endorseddirs&amp;nbsp;&amp;lt;目录&amp;gt;&amp;nbsp;覆盖签名的标准路径的位置&amp;nbsp;-proc:{none,only}&amp;nbsp;控制是否执行注释处理和/或编译。&amp;nbsp;-processor[,,...]要运行的注释处理程序的名称；绕过默认的搜索进程&amp;nbsp;-processorpath&amp;nbsp;&amp;lt;路径&amp;gt;&amp;nbsp;指定查找注释处理程序的位置&amp;nbsp;-d&amp;nbsp;&amp;lt;目录&amp;gt;&amp;nbsp;指定存放生成的类文件的位置&amp;nbsp;-s&amp;nbsp;&amp;lt;目录&amp;gt;&amp;nbsp;指定存放生成的源文件的位置&amp;nbsp;-implicit:{none,class}&amp;nbsp;指定是否为隐式引用文件生成类文件&amp;nbsp;-encoding&amp;nbsp;&amp;lt;编码&amp;gt;&amp;nbsp;指定源文件使用的字符编码&amp;nbsp;-source&amp;nbsp;&amp;lt;版本&amp;gt;&amp;nbsp;提供与指定版本的源兼容性&amp;nbsp;-target&amp;nbsp;&amp;lt;版本&amp;gt;&amp;nbsp;生成特定&amp;nbsp;VM&amp;nbsp;版本的类文件&amp;nbsp;-version&amp;nbsp;版本信息&amp;nbsp;-help&amp;nbsp;输出标准选项的提要&amp;nbsp;-Akey[=value]&amp;nbsp;传递给注释处理程序的选项&amp;nbsp;-X&amp;nbsp;输出非标准选项的提要&amp;nbsp;-J&amp;lt;标志&amp;gt;&amp;nbsp;直接将&amp;nbsp;&amp;lt;标志&amp;gt;&amp;nbsp;传递给运行时系统&lt;/pre>&lt;p>&lt;span>这样我们就在Windows的系统中，配置好了Java环境。&lt;/span>&lt;/p>&lt;p>&lt;span>2 Java在Linux Ubuntu中安装&lt;/span>&lt;/p>&lt;p>&lt;span>Java安装，指定的是SUN Oracle官方的JDK软件包，而不是Linux Ubuntu系统中通过apt-get安装的OpenJDK。&lt;/span>&lt;/p>&lt;p>&lt;span>注：请一定注意版本，必须使用SUN Oracle官方的JDK软件包&lt;/span>&lt;/p>&lt;p>&lt;span>在Linux Ubuntu中，下载并安装JDK，这里我选择安装Java SE 1.6.45的64位版本的JDK。&lt;/span>&lt;/p>&lt;p>&lt;span>2.1 下载JDK&lt;/span>&lt;/p>&lt;p>&lt;span>不知道Oracle官方网站时候调整的JDK下载需要先登陆，因此直接使用wget命令，无法完成JDK的下载。&lt;/span>&lt;/p>&lt;p>&lt;span>我们有下面2种解决方法：&lt;/span>&lt;/p>&lt;ul class=" list-paddingleft-2">&lt;li>&lt;p>&lt;span>1). 从浏览器中登陆下载，然后再传到Linux的服务器&lt;/span>&lt;/p></description></item></channel></rss>