关注
使用JDK命令行编译、运行Java程序 及相关常见问题的解决(细致) 原创
2019-09-29 10:17:47
15点赞
软件开发技术爱好者
码龄15年
关注
使用JDK命令行编译、运行Java程序
一般都是通过IDE(如Eclipse、Intellij Idea,MyEclipse)来开发,调试java项目。但作为学习Java初学者,一上来就用这些IDE,可能会被分神,原因是学习IDE的使用也需要相当的付出。应从使用JDK命令行编译、运行Java程序开始,这是学习Java最基本的实验实践技能。
JDK11于2018-09-25正式发布!美国当地时间9月25日,Oracle 官方宣布 Java 11 (18.9 LTS) 正式发布,可在生产环境中使用!这陵宴誉是自 Java 8 后的首个长期支持版本(Long-Term Support),新的长期支持版本每三年发布一次,根据后续的发布计划,下一个长期支持版 Java 17 将于2021年发布。以前的版本,要运行一个 Java 源代码必须先编译(用 javac 命令),再运行(用 java 命令),两步执行动作。而 Java 11 版本中,通过一个 java 命令就直接搞定了,分两步也可以。
JDK(java development Kit,Java 开发工具包),是面向开发人员使用的SDK(软件开发工具包),提供了java的开发环境和运行环境。JRE是java runtime enviroment,是指java的运行环境,是面向java程序的使用者,而不是开发者。
和一般的Windows 程序不同,JDK 安装成功后,不会在“开始”菜单和桌面生成快捷方式。这是因为bin 文件夹下面的可执行程序都不是图形界面的,它们必须在控制台中以命令行方式运行。另外,还需要用户手工配置一些环境变量才能正常使用JDK。
JDK 安装完毕后,在安装路径下有一些文件夹(目录),如:
bin 文件夹:存放编程所要用到的开发工具,包括javac、java等。
lib 文件夹:lib是libarary(类库)的缩写。也就是存放一些程序运行时的依赖文件。
……
关于JDK11的安装与配置,在此跳过,请看他文。
特别说几句,关于书或文章中图示用的截图和 *** 作步骤,这些相对来说是稳定的但决非是固定的。对于初学者,或刚刚接触的技术,好的图示截图和 *** 作步骤可以减尺段少学习过程中出现周折带来的挫折感,但是,我们知道,技术是演化和进步的,改进变革是不可避免的,因此图示截图和 *** 作步骤祥含不可能一成不变,特别是在不同的版本或出现重大升级时有一些显著改变,有时困惑不明,上网又搜索不到,这时自主探索就很重要,所以探索性试验性学习应当发扬。当你练习时发现截图和书或文章中有某些差异时,除作者可能的失误外,应想到你所用的版本、开发环境是否与作者的一致。
将JDK的安装路径加入系统Path,然后在命令行中输入:java class文件的名字 就可以了。/**************************************************************************************************************/
JAVA是编译型和解释型的结合,javac是编译,java是解释,解释的*.class文件在JVM上的执行
Java命令一执行,就表示将肆拆*.class文件放在JVM上进行执行,执行的结果打印在屏幕上
执行的步骤:
1:进入该文件所在的盘符,如这个文件在D盘
d:
2:在该盘符下进入该文件所在的文件夹(主要判如命令cd 文件夹; dir是查看该文件夹下面的东西)
cd 文件夹
3:进入到该文件夹可以看到这个java文件以后 那么就用javac编译他
javac helloword.java
4:现在就可以看到编译后的class文件 helloword.class
java helloword
注意在这里,后面是不带后缀名的
注意咯,在编译的时候,有可能会报这样的信息:编码GBK的不可映射字符
该怎么解决呢:下面引用了这位老兄的详细解释:
这是因为:由于JDK是国际版的,在编译的时候,如果我们没
有用-encoding参数指定我们的JAVA源程序的编码格式,则javac.exe首先获得我们 *** 作系统默认采用的编码格式,也即在编译java程序
时,若我们不指定源程序文件的编码格式,JDK首先获得 *** 作系统的file.encoding参数(它保存的就是 *** 作系统默认的编码格式,如WIN2k,
它的值为GBK),然后JDK就把我们的java源程序从file.encoding编码格式转化为JAVA内部掘雹启默认的UNICODE格式放入内存中。然
后,javac把转换后的unicode格式的文件进行编译成.class类文件,此时.class文件是UNICODE编码的,它暂放在内存中,紧接
着,JDK将此以UNICODE编码的编译后的class文件保存到我们的 *** 作系统中形成我们见到的.class文件。对我们来说,我们最终获得
的.class文件是内容以UNICODE编码格式保存的类文件,它内部包含我们源程序中的中文字符串,只不过此时它己经由file.encoding格
式转化为UNICODE格式了。当我们不加设置就编译时,相当于使用了参数:javac
-encoding gbk XX.java,当然就会出现不兼容的情况。
解决办法是:应该使用-encoding参数指明编码方式:javac -encoding UTF-8
XX.java,这下没警告了,运行也正确了在JCreator 4中设置:菜单:Configure -->Options -->
JDK Tools -->
Compiler,选中<Default>,然后选Edit,Parameters里面,最前面添加:-encoding UTF-8。
Parameters原来的
默认值为:-classpath "$[ClassPath]" -d "$[OutputPath]" $[ModJavaFiles]
修改后为:-encoding UTF-8 -classpath "$[ClassPath]" -d "$[OutputPath]" $[ModJavaFiles]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)