javac不是内部或外部命令,也不是可运行的程序或批处理文件的细节问题
cmd里输出的内容有一些没有保存,总而言之就是在cmd中java指令可以输出内容而javac指令会进行这一条的报错。具体解决方式可参考 javac不是内部或外部命令,也不是可运行的程序 或批处理文件的细节问题(window10) 这个贴的讲解。
在环境变量Path的设置中,应避免使用类似于%JAVA_HOME%/bin
这样的相对路径(许多有关javac无法在cmd运行的问题贴下都会有人这样建议设置环境变量),很容易在path变量中出现多余且难以察觉的分号或者空格(这点可以在cmd中输入path指令进行检查,在其中的某个路径里就发现了多余的分号,笔者这里没有截图),而应该直接使用绝对路径,例如
C:\Program Files\Java\jdk1.8.0_91\bin
这种格式。设置好后重新打开cmd运行javac指令,像下面这样就算是配置成功了。
javac命令编译java文件成class文件出现中文乱码
以下是原来的代码和输出的乱码结果:
public class HelloWorld{
public static void main(String[] args) {
System.out.println("java是一门跨平台的计算机语言");
System.out.println("被称为一次编写,处处运行");
}
}
具体解决方法可参考 javac命令编译java文件成class文件出现中文乱码问题解决 这一篇,即写入javac -encoding UTF-8 HelloWorld.java
这一条指令即可(HelloWorld.java替换成相应的文件名)
变量的有效范围
public class Scope{
public static void main(String[] args){
// 片段1
int a = 10;
{
a = 20;//可正常运行
System.out.println(a);
}
// 片段2
{
int b = 20;
System.out.println(b);
}
// b = 30;//局部变量的作用域仅限于代码块中,这里已经超出其有效作用域
int b = 30;//如果要重新赋值需要重新声明全局变量
System.out.println(b);
}
}
笔者认为 Java中变量的作用范围 解释的比较全面,留做后续复习参考。