大家好,我是小星星,最近新学的php,我迫不及待要跟大家分享了!!come on!一起来看小星星的世界

先为大家介绍php基础

首先我们来看看什么叫php:

PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言语法吸收了C语言JavaPerl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了CJavaPerl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密优化代码运行,使代码运行更快。

php支持的动态网站语言:

java----jsp
PHP-----php
asp---——asp

php中常见的服务器:

Apache:Apache公司旗下的服务器,用于解释php语言,端口号80
 Tomcat:Apache公司旗下的另一款服务器,用于解释jsp文件,端口号8080
 http协议的默认端口号是80,所以使用Apache服务器无需输入端口,可以直接
 使用本地的 IP:127.0.0.1或者localhost

常见的数据库:

Mysql Oracle Access SQLServer..
Mysql是一款开源免费的数据库软件,数据库存储量上要低于Oracle,但是执行效率上要高于Oracle
PHP系统通常配合Mysql使用,但是php也支持链接几乎所有的主流浏览器

B/S和C/S:

1.B/S结构:浏览器/服务器结构,用户只需要通过浏览器即可访问的网站,绝大部分功能集中在后台服务器。
 2.C/S结构:客户端服务器结构,用户需要安装软件客户端才可以使用的程序,客户端部分可以分担一定的操作功能

php的语言标记:一共四种哦

①<?php?> 这个最好哦

②<script language="php"></script>

③<? ?>

④<% %>

php中的变量:

①:php中的变量必须使用$开头!!
 ②:php是一种弱类型语言,变量无需声明,直接给变量赋值即可,并且可以再后续赋值过程中,随时修改变量的数据类型
③:php中可以使用连等声明多个变量,而且一定不能用,分割。

eg:$a=$b=$c=10;

PHP中的真假换算(很重要哦):

1 Boolean:true为真false为假;
 2。 Integer类型,0为假,非0为真
 3. 浮点型 0.0为假,非0.0为真
4.字符串类型 "" "0"为假,其余全为真
 5 。Array类型,空数组为假,非空为真
 6 Object类型:全为真;(只有PHP4版本中,空对象为假)
 7 NULL类型 全为假。
 8 Resource类型:全为真。

php中的字符串:

① '';
 ② "";
 ③<<<(定界符); $str=<<<s(定界符开始)
//定界结束符必须顶格写, 而且一行中不能有任何其他内容,包括空格;
 //定界标识符可以是任何字母,只要保证开始符和结束符一致即可;

s;(定界符结束)

 ④三种声明方式的区别:
 a:''中不能解析变量,而双引号可以解析变量。
 注意:双引号中,如果解析变量,需要将变量与后面内容隔开,或者用{}包裹。

eg:"haha{$num}haha" "haha${num}haha" 两种写法均可
 b: ''中不能使用转义符(除了\\和\'之外)双引号中可以使用所有转移符;
 c ''中可以有双引号,双引号中可有单引号,但是不能包裹同类型引号
 d 定界符所有功能,与双引号相同.(但是,定界符中还可以有双引号)

php中的数据类型转换:

1 自动类型转换,表示运算的时候,Boolean null String等类型会自动转为Integer或Float类型
 Null-->0 false-->0 true-->1
 String转第一个非数值字符前面的数 "123a"-->123 "a123"-->0

2 强制类型转换:根据我们的需要,强制将变量转化为其它类型。
②:使用()声明新类型强转
 $新变量=(新类型)$原变量; $str=(String)1
 //新类型的名称可以使用全拼。也可以使用缩写 Integer/Int Boolean/bool 是一个意思
 (Integer)(int)---整形* (float)(double)(real)--浮点型

(String)--字符串* (Boolean)(bool)--布尔型
 (Array)---数组
 (object)--对象

②:使用settype()进行强转;
 bool settype(minxed var,String NewType);
 第一个参数是任何类型的变量,第二个参数是字符串类型的新数据类型
 返回值是Boolean类型,表示转换是否成功!
 ③:两种强转的区别;
 第一种 是将转换之后的结果赋值给新变量;
 第二种 是直接修改掉原变量的数据类型

php中判断函数数据类型的常用函数:

is_bool():判断是否是布尔型
is_int()、is_integer()和is_long():判断是否为整型。
is_float()、is_double()和is_real():判断是否为浮点型
is_string():判断是否为字符串
is_array():判断是否为数组
is_object():判断是否为对象
is_resource():判断是否为资源类型
is_null():判断是否为null
is_scalar():判断是否为标量
is_numeric():判断是否是任何类型的数字和数字字符串
is_callable():判断是否是有效的函数名

php中的运算符:

1 算术运算符
+ - * / ++ --
 $a=22/"2.2a";

+:只有加减运算的功能,在进行加减运算时,如果两边有非数值类型,则会自动将非数值类型转为数值类型
 2 赋值运算符 = += -= *= /= %= .=(连接字符串)

3 比较运算符
 > < >= <= == === != <>(不等于) !==
 ==:不要求数据类型相等,只要求转换之后的结果相同;
 ===:要求值和数据类型必须都相等;
 4逻辑运算符:
 && and || or !
 &&和||:进行运算的时候会发生短路,当左侧能够判断出结果时,将直接返回结果,而不运行右侧(&& 左假即假 ||左真即真)
 xor:逻辑异或 两边只有一个true,结果为TRUE,两天同为true或者同为false,结果为false

5 位运算符
 将10进制的数,转为二进制,进行按位运算,运算完以后在转回10进制
 &:按位与, 两个都为1 结果为1
 |:按位或, 有一个1 结果为1
 ^:按位异或, 两个不相同时, 结果为1
 (一个数异或自身,结果为0,一个数异或0,结果为其自身)
 <<:左移 转为2进制后,左移几位,右边空余位补0
 num<<n 相当于num *2^n
 >>:右移,转为2进制后,右移几位,左边空余位补0
 num>>n 相当于num/2^n(小数取整)
 6 其他运算符
 ?:三元运算符. ?前面为true,则执行:前面的,否则执行:后面的
 ``:可以直接用系统命令执行中的相关指令并执行,但是,由于不同平台的的指令不一致,
 以及安全性问题,这个符号我们并不支持使用,eg: 'ipconfig'
 @:错误信息的控制符,可以屏蔽掉网页中出现的一些小错误信息,,但是,并不提倡使用
 echo @$f //未定义 会产生Notice级别的提示,可以使用@屏蔽

php流程控制语句:

1continue:跳出本次循环继续进行下一次
2 break 跳出本层循环,继续执行循环后面的的语句,
 php中,continue和break后面可以接数字表示跳过几层循环或者switch,
 3 return 结束当前函数,并返回值,如果没有函数包裹,return也能终止当前脚本,但是一般不使用return终止脚本
 4 exit()die():结束当前脚本,并且打印一句话
 exit("再见");

基础就这么多,下面来介绍函数

函数的声明与使用:

1、标识符:程序中各变量名、属性名、方法名、函数名、类名统称为标识符
 ①:标识符的命名要求
 只要是标识符,命名只能有字母数字下划线组成,开头不能是数字
 ②:标识符的命名规范:
 类名:要符合“大驼峰法则”。每个单词的首字母全部大写!PersonName
 其他标识符,符合“小驼峰法则”,首字母小写,之后每个单词的首字母大写 myNameIsJredu
 或者“匈牙利命名法”所有字母小写,单词之间用下划线分割。my_name_is_jredu

函数名的要求:
 ①:函数名也是标识符之一,符合标识符的要求与规范
 ②:函数名不区分大小写
 ③:函数名与已有函数名重复,不能与系统内置函数名重复
 ④:bool function_exists(String funName);用于检测函数名是否存在

php中变量的作用域:

1 局部变量:声明在函数内部的变量,称为局部变量,只能在函数内部使用,如果要在外部使用,使用return关键字将函数返回
 2声明在函数外面的变量称为全局变量
 3 注意:php中,全剧范围不能访问局部变量,局部范围也不能访问全部变量
 如果要在函数中使用全局变量,则需要使用global关键字将全局变量引入
 函数中如果需要有变量与全局变量重名,global语句之上,使用局部变量,global语句之下,使用全局变量
 4 GLOBALS[] 全剧数组
 $GLOBALS[]数组是php中的全局数组,可以直接给数组添加键和值,无论在函数内外声明,均可以在任何地方使用;
 eg:$GLOBALS['name']="jianghao";
 //无论哪里声明,在任何地方均可使用$GLOBALS['name']
 5 函数中需要使用局部变量使用全局变量,还有一种方式,叫做【函数传参】,可以将全局变量通过函数的参数传入,但是传进来的参数是函数的形参,也就是
 函数内部的局部变量,这个变量与全局变量实际上是2个变量,内部改变,全部变量不会变;
 如果需要在函数内部改变全局变量,可以将形参声明为取址形式
 function func($a1,&$a2){} //函数内修改a1,全局的a1不会改变,函数内修改a2,函数的a2也会改变
 注意:如果函数的形参为取址形式,则调用时必须传入变量,而不能是字面量,例如上面的函数调用, func($a1,$a2);√ func($a1,2)×
 因为字面量,不能内存中的变量,无法取地址。

6 php中子函数也无法使用父函数中变量。
 如果子函数要使用父函数的变量,可以将子函数作为变量函数使用, 同时配合use关键字将父函数的变量传入子函数;
 function func(){
 $a=10;
 $func=func() use($a){
 echo $a;
 }
 }
 use关键字只能配合变量函数使用,可以将子函数作为函数的表达式使用,同时匹配合use关键字将父函数的变量传入子函数

函数中参数的传递:

在php中如果有参数的传递,实参只能比形参多,不能比形参少!!
 ①:常规参数传递: function func($a){} func(123);
 2 引用参数传递 : function func(&$a){} func($b) ;
①:通过&传递进来的是实参的地址,所以函数内部改变形参,外部的实参也会改变
 ②:如果形参为引用参数,那么实参必须是变量,而不能是字面量,因为字面量没有地址!!(func10); ×
 3 默认参数传递: function func($a,$b=10){} func(12);
 //$b可以不传,默认为10;
 注意:如果参数中有默认参数,拥有非默认参数,则需要将所有的非默认参数放在后面,所有的默认参数放在后面

4可变参数传递,由于php中实参可以比形参多,那么,传递进函数的参数可以通过php的内置函数取到相关数据
 func_get_args();返回数组的格式,去到所有的实参列表
func_num_args();返回实参列表总个数,count(func_get_args());
func_get_arg(0);传入index,取到第几个参数 func_get_args()[0]

例如:

function func3($a,$b=){
$arr=func_get_args();
var_dump(func_get_args());
var_dump(func_num_args());
var_dump(func_get_args());
var_dump(count($arr));
}
func3();
 

变量函数:

1 将一个函数名,作为一个字符串,赋值给一个变量,这个变量,就是我们所说的变量函数,可以直接使用()调用变量函数。
function func(){}
 $a="func";//$a就是变量函数
 $a();

function func4(){

   }
$func4=func;
$func4();
var_dump($func4);
 

自定义回调函数:我们用前面的知识来做一个大题

function filter($start,$end,$func){
for($i=$start;$i<=$end;$i++){
if($func($i)){
echo "{$i}<br>";
//传参,for循环
}
}
}
// filter(1,100);
filter(,,function($a){
if($a%== && $a%!=){
return true;
}else{
return false;
}
});
function func2($a,$b){ }
func2(,,,);
function func(){
$a=;
static $a=;
echo $a;
$a++;
}
func();
func();
func();
func();
func();
func();
 

匿名函数:

由于变量函数,存在两种调用方式,例如func() $func()
 无法保证调用方法的统一,所以,变量函数通常使用匿名函数的方式进行
 $func1=function(){};
 !!!注意使用匿名函数表达式,最后的分号一定不能省略!
 匿名函数。本身也是变量,用var_dump检测,是Object类型;

$func1=function(){};
var_dump($func1);
看看打印后返回什么:

我们来做一个练习题吧!求取10以内的数阶乘:

function func($num){
static $jie=;
//static叫做静态变量

使用static关键字声明的变量,称为静态变量,static $a=0;
  静态变量的特点:
 ①:静态变量在函数第一次加载时进行声明;
 ②:静态变量在函数调用完成后,不会被释放,静态变量在整个脚本执行完成后;释放变量
 ③:同一个函数多次调用,共享同一个静态变量

    if($num>){
$jie *= $num;
$num--;
func($num);
}
return $jie;
}
var_dump(func());


php中的数组

php中数组的分类:

按照下标的不同,php中的数组分为关联数组和索引数组
索引数组,下标为整数类型,从0开始,依次增长;
 关联数组,下标为字符串类型,每个下标的字符串与数组中的值一一对应(类似对象中的键值对)

两个数组有什么区别呢!小编总结以下五条:

关于关联数组跟索引数组
 ①:同一个数组中,可以同时存在关联项和索引项
 array(1,2"name"=>zhangsan)
 ②:如果数组中同时存在关联项跟索引项,则索引下标会去掉关联项后,默认增长(关联项不占索引位)
 array(1,2,"name"=>zhangsan,3,4);//1,2,3,4的下标依次为0,1,2,3
 arr=[];//字面量方式声明数组从php.4开始支持
 ③:如果关联项的key是十进制的整形,则会将此数字转为索引下标,
 ("10.0","08"等格式,不会转为索引下标仍然为关联数组)
$arr4=array(1,2,"name"=>"zhangsan","5"=>3,"07"=>4);//1,2,3,的下标依次为0,1,5
 4依然为关联项,key为"07"
④:如果手动指定索引下标,则后续索引的增长,将从指定的最大下标开始
 array(1,2,"name"=>"zhangsan","5"=>3,4);//4的下标为6
 ⑤:如果手动指定索引项的下标,或关联项的key与前面的已有下标混合或者key重复,则后指定的会覆盖前面指定的
 array(1,"name"=>"zhangsan","0"=>3,"name"=>4);
 //数组最终第0项为3,name=>4

写法:

//索引数组
$arr=[];
$arr1=array(1,2,3,4,5,6);
var_dump($arr1);

print_r($arr1);
//关联数组,用=>表示键值对的关联

让我们用几个栗子来验证以上学法是否正确:

$arr2=array("name"=>"zhangsan","age"=>,"sex"=>"男");
var_dump($arr2);
echo $arr2["name"];
$arr3=array(,,"name"=>"zhangsan",,);
var_dump($arr3);
//如果数组中同时存在关联项跟索引项,则索引下标会去掉关联项后,默认增长!!符合上述第二条

$arr4=array(,,"name"=>"zhangsan",""=>,""=>);
var_dump($arr4);

//如果关联项的key是十进制的整形,则会将此数字转为索引下标,
 ("10.0","08"等格式,不会转为索引下标仍然为关联数组)
所以:$arr4=array(1,2,"name"=>"zhangsan","5"=>3,"07"=>4);//1,2,3,的下标依次为0,1,5


$arr5=array(,,"name"=>"zhangsan",""=>,);
var_dump($arr5);

//如果手动指定索引下标,则后续索引的增长,将从指定的最大下标开始
 array(1,2,"name"=>"zhangsan","5"=>3,4);//4的下标为6

$arr6=array(,"name"=>"zhangsan",""=>,"name"=>);
var_dump($arr6);

如果手动指定索引项的下标,或关联项的key与前面的已有下标混合或者key重复,则后指定的会覆盖前面指定的
 array(1,"name"=>"zhangsan","0"=>3,"name"=>4);
 //数组最终第0项为3,name=>4

数组声明的方式:

使用Array()声明:但是没有new关键字
$arr=array(1,2,3);

使用字面量[]声明,这种声明从php5.4开始支持
 $arr=[1,2,3];

直接赋值声明:php中数组,可以直接使用$arr[]=n;在数组中最后追加一个值,类似push方法。
 追加的值的下标,与前面的要求一样,按照下标最大值进行递增

$arr[]=;
$arr[]=;
$arr[]=;
$arr[]=;
$arr[]=;
$arr[]=;
var_dump($arr);
//数组下标的读取,php中数组下标的读取,支持使用[]和() var_dump($arr[]);
var_dump($arr[]);

$arr[]=1;
$arr[]=2;
$arr[8]=3;
$arr[]=4;
$arr[4]=5;
$arr[]=6;
var_dump($arr);
//数组下标的读取,php中数组下标的读取,支持使用[]和()


var_dump($arr[0]);
var_dump($arr[8]);



【多维数组】

如果一个数组中的值,依然为数组,那个这个数组就是多维数组

2 多维数组,并不要求每个项都是数组,嵌套一般不超过3层

$class=[
"name"=>"h51705",
"count"=>"", "grounp1"=>array("zhangsan","lisi","wangermazi"),
"grounp2"=>array("zhangsan","lisi","wangermazi"),
"grounp3"=>array("zhangsan","lisi","wangermazi"),
"grounp4"=>array("zhangsan","lisi","wangermazi"),
"grounp5"=>array("zhangsan","lisi","wangermazi") ];
var_dump($class);


便利数组:

[使用for循环便利数组]
 count($arr);函数用于统计数组中的元素个数
 for:循环只能用于便利索引数组,如果包含关联数组,则count()会统计两种数组的总个数,到时for循环时会出现“数组下标越界”的错误

$arr=[,,,,,"name"=>"张三"];
for($i=;$i<count($arr);$i++){
echo $arr[$i]."<br>";
}

2 foreach便利数组
foreach可以便利任何类型的数组!!

$arr1=[,,,,,"name"=>"张三"];
foreach($arr1 as $item){
echo "{$item}<br>";
}
$arr1=[,,,,,"name"=>"张三"];
foreach($arr1 as $key=>$value){
echo "{$key}=>{$value}<br>";
}

使用list()/each()/while()便利数组

list():用于将数组中的每一个值赋给list函数的每一个参数。(list函数的参数个数,不能大于数组中元素的个数)
 eg: list($a,$b,$c)=$arr;
 --->$a=1; $b=2; $c=3;
 注意:①:list()在解析数组的时候只能解析索引数组;
 ②:list()可以通过索引参数选择性的解决数组的值;
 list($a,$b,,$c)=[1,2,3,4];==>$c=4

$arr=[,,,];
list($a,$b,$c,$d)=$arr;
echo $a."<br>";
echo $b."<br>";
echo $c."<br>";
echo $d."<br>";


each():函数的作用
each():用于返回数组当前的指针所在的位的键值对,并将指针后移一位;
 "返回值":如果指针有下一位,则返回一个数组,数组包含一对关联项
 ("key"--键 "value"--值)和一个索引项(0--键 1--值)
 如果指针没有下一位,返回false

$arr1=["name"=>"zhangsan",,,];
// each ($arr1);
var_dump(each($arr1));
var_dump(each($arr1));
var_dump(each($arr1));
 

使用while循环,配合each进行便利

while($a=each($arr1)){
echo "{$a[0]}==>{$a[1]}<br>";
echo "{$a['key']}==>{$a['value']}<br>";
}
reset($arr1);//将数组指针恢复到最初位置 while(list($key,$value)=each($arr1)){
echo "{$key}==>{$value}<br>";
}
reset($arr1);
var_dump($arr1);
 

小星星的php的更多相关文章

  1. BZOJ4455: [Zjoi2016]小星星

    Description 小Y是一个心灵手巧的女孩子,她喜欢手工制作一些小饰品.她有n颗小星星,用m条彩色的细线串了起来,每条细 线连着两颗小星星.有一天她发现,她的饰品被破坏了,很多细线都被拆掉了.这 ...

  2. JS对象实现随机满天小星星实例

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. 【BZOJ-4455】小星星 容斥 + 树形DP

    4455: [Zjoi2016]小星星 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 204  Solved: 137[Submit][Status] ...

  4. BZOJ 4455: [Zjoi2016]小星星 [容斥原理 树形DP]

    4455: [Zjoi2016]小星星 题意:一个图删掉一些边形成一棵树,告诉你图和树的样子,求让图上的点和树上的点对应起来有多少方案 看了很多题解又想了一段时间,感觉题解都没有很深入,现在大致有了自 ...

  5. [ZJOI2016]小星星

    题目描述 小Y是一个心灵手巧的女孩子,她喜欢手工制作一些小饰品.她有n颗小星星,用m条彩色的细线串了起来,每条细线连着两颗小星星. 有一天她发现,她的饰品被破坏了,很多细线都被拆掉了.这个饰品只剩下了 ...

  6. 4455[Zjoi2016]小星星 容斥+dp

    4455: [Zjoi2016]小星星 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 527  Solved: 317[Submit][Status] ...

  7. [ZJOI2016]小星星&[SHOI2016]黑暗前的幻想乡(容斥)

    这两道题思路比较像,所以把他们放到一块. [ZJOI2016]小星星 题目描述 小Y是一个心灵手巧的女孩子,她喜欢手工制作一些小饰品.她有n颗小星星,用m条彩色的细线串了起来,每条细线连着两颗小星星. ...

  8. UOJ #185【ZJOI2016】 小星星

    题目链接:小星星 首先有个暴力很好想.令\(f_{i,j,S}\)表示把\(i\)这棵子树对应到原图中的\(S\)集合,\(i\)号点对应到了\(j\)号点的方案数.这玩意儿复杂度是\(O(3^nn^ ...

  9. 【BZOJ4455】小星星(动态规划,容斥)

    [BZOJ4455]小星星(动态规划,容斥) 题面 BZOJ 洛谷 Uoj 题解 题意说简单点就是给定一张\(n\)个点的图和一棵\(n\)个点的树,现在要让图和树之间的点一一对应,并且如果树上存在一 ...

随机推荐

  1. spring的配置文件和加载

    ①:创建applicationContext.xml配置文件放在src下 //applicationContext.xml代码 <?xml version="1.0" enc ...

  2. 201521123122 Java 第二周学习总结

    1. 本周学习总结 1.进一步了解了对码云的使用,学会了将本地代码上传到码云以及将码云上的代码克隆到eclipse上. 2.感觉本章学的基本语法和c的基本上差不多啊 3.string的对象创建后无法修 ...

  3. 201521123037 《Java程序设计》第14周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 1.1 建立数据库,将自己的姓名.学号作为一条记录插入.(截图, ...

  4. 201521123033《Java程序设计》第10周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. answer: 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题目4-2 1.1 截图 ...

  5. 201521123049 《JAVA程序设计》 第10周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题目4-2 1.1 截图你的提交结果(出 ...

  6. 201521123027<java程序设计>第14周作业总结

    1.本周作业总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2.书面作业 Q1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自己 ...

  7. Java第九周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己 ...

  8. html css 前端基础 学习方法及经验分享

    前言: 入园第一天,想分享一点儿前端基础html css 的学习方法和一些经验给热爱前端,但是不知道从哪儿开始,依旧有些迷茫的新手朋友们.当然,适合每个人的学习方式不同,以下所讲的仅供参考. 一.关于 ...

  9. JavaScript 基本语法结构

    1 变量 JavaScript的变量是弱类型的,就是所有的对象都是使用var 来进行声明 2 变量的命名规则 1.由字母.数字.下划线组成,区分大小写 2.以字母开头 3.变量名不能有空格 4.不能使 ...

  10. gephi安装后无法打开

    具体解决的方法是找到gephi.conf文件(在“gephi安装目录\etc”中)文件,添加下面的一行,指定jdkhome的路径. jdkhome="C:\Program Files (x8 ...