1.首先说一下javac命令去编译这个文件时需要注意的问题。
上个文章说过这个javac编译命令我们可以用javac -d . +类名.java文件来代替,代表我们把编译生成的.class文件放到了的当前目录。这个命令中,javac后面要加上空格,然后d后面和.后面都要加上空格。具体如
javac -d . HelloWorld.java。
2.如果我们在编译过程中出现了下图所示的问题。
这个时候我们需要更改一下这个编译的命令用:
:javac -encoding UTF-8 文件名.java即可。
3.当我们运行的时候如果出现了下图的问题:
这里就涉及到了包的问题。
这是我的程序的内容,这个程序在 eclipse中运行是完全没有问题的,大家可以想一下,咱们在eclipse中要想编写和运行一段程序,我们总是先建一个包,然后在包下面建一个类,然后在这个类里再去写这个程序。我们写的时候会注意到一个问题,这时候eclipse会自动在我们的程序上面的第一行自动写上package +包名这样的一行程序。
然后我们在doc管理窗口下,是没有软件给我们提供这样的便利的。我在程序中建立了一个包lee,所以我们既然是把这个东西放在了当前路径下去运行,那么我们应该也要在当前的路径下有一个这样的包,然后才能去运行。如图所以,我在当前路径下,建立了一个我程序中用到的lee包,然后,我把生第一步编译生成的.class文件和java文件放进去,
然后把运行命令改为:java 包名.类名,运行成功。
java执行class文件对package的路径是强依赖的。它在执行的时候会严格以当前用户路径为基础,按照package指定的包路径转化为文件路径去搜索class文件,所以你的包放在哪里,你就需要把你的java和class文件放在哪里。
来看看Java解释器的运行过程吧:首先,找出环境变量CLASSPATH(可以通过操作系统来设置)。CLASSPATH包含一个或多个目录,用作查找.class文件的根目录。从根目录开始,解释器获取包名称并将每个句点替换成反斜杠,以从CLASSPATH根中产生一个路径(例如,package fruit.Apple就变成为fruit/Apple或fruit/Apple或其他,这将取决于操作系统)。得到的路径会与CLASSPATH中的各个不同的根目录路径相连接以获得一个完整的目录路径,解释器就在这些目录中查找与你所需要的类名称相同的.class文件。(此外,解释器还会去查找某些涉及Java解释器所在位置的标准目录。)
所以在这里java寻找的就是classpath+package名。
关于doc编译java记事本文件的几点说明
最新推荐文章于 2021-07-27 22:35:47 发布