当前位置:首页 > 软件开发 > 正文

java编译环境?java的编译过程及原理

java编译环境?java的编译过程及原理

大家好,关于java编译环境很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于java的编译过程及原理的知识点,相信应该可以解决大家的一些困惑和问题,如果...

大家好,关于java编译环境很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于java的编译过程及原理的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

Java编程好,还是Java安卓好哪个比较难学

你说的这两个对于基础来说都是一样的,没有什么区别。它们的基础都是java编程语言,如果你会java语言的话这两个都可以做。

区别就是你说的java编程语言应该是属于云端开发,不涉及到界面;android开发是涉及到界面布局开发的,包括事件机制等等,不过这个和云端开发的接口调用理念上没有什么区别。

之后就是看未来发展。目前来看我感觉差不太多。移动互联网的普及,包括未来的智能车载,智能家庭,可能都会用到android开发。同时这些领域的发展也需要云端强大的能力和大数据的支持,所以我觉得看兴趣吧。如果你对开发App有兴趣可以直接选android。不过我还是建议你选择云端开发,学到的东西更多,对App开发有兴趣可以自己学习一下Android的开发环境就好了。

java编译通过,为什么运行却提示找不到或无法加载主类

首先,让我们简单了解一下怎样使用java命令来运行java程序的正确方法。

语法是这样的:

java[<options>]<class-name>[<arg>...]

其中<option>是命令行选项(以“-”字符开头),<class-name>是Java类完整名称(FQN),包括类所在的包,比如说packagename.packagename2.ClassName,或者packagename/packagename2/ClassName,而<arg>是传递给应用程序的命令行参数。举个例子:

java-Xmx100mcom.hello.world.HelloWorldarg1arg2

上面这个命令会执行以下操作:

搜索com.hello.world.HelloWorld类的字节码加载类判断类是否包含主方法入口调用主方法入口,并把参数arg1和arg2传递给它

当出现“找不到或无法加载主类...”的情况时,表明第一步已失败,Java命令无法找到类。并且在错误消息中会给出正在寻找的类名。

下面说一说为什么会出现找不或者无法加载类的原因:

1类名错误

第一个可能的原因是类名错误,或者正确的类名,但格式错误。

类名需要保证:拼写正确(包括大小写),并且完整(包名要包括在内)。

2类路径错误

2.1类路径设置错误

类路径(CLASSPATH)是Java运行时环境搜索类和其它资源文件的路径。

类路径的设置的完整解释可以去看一下Oracle文档,这里给出一个简单的说明。

windows下类路径的设置命令:

setCLASSPATH=classpath1;classpath2...

Linux下类路径的设置命令:

exportCLASSPATH="classpath1:classpath2..."

注意,windows和linux使用的分隔符不同,windows是“;”,linux是“:”.

也可以在运行时使用-cp选项来指定类路径:

java-cpclasspath<class-name>[<arg>...]

设置类路径时,它应该对应于类完整名称的根目录。

2.2子目录和类完整名(FQN)不匹配

比如,如果类的完整名称是com.hello.world.HelloWorld,那么JVM查找时,会在子目录“com/hello/world”中找名为HelloWorld的类。如果子目录与包命名不匹配,也会导致JVM将找不到类。

如果编译后曾经移动过类或者重命名了类,也会导致命令运行失败,但是导致的错误将会是java.lang.NoClassDefFoundError,并不是找不到或者无法加载类。

给个完整的例子

想运行com.hello.world.HelloWorld类,

完整的文件路径是/java/coding/com/hello/world/HelloWorld.class,

当前的工作目录是/java/coding/,

那么运行:

javacom.hello.world.HelloWorld

如果当前工作目录是/java/coding/com/hello/world/,

那么需要指定类路径(类路径可以是相对路径也可以是完全路径):

java-cp../../../com.hello.world.HelloWorld

3类路径中缺少类的依赖dependencies

类路径需要包括所有程序依赖的其它(非系统)的类。系统类是自动定位的,但需要确保非系统类在类路径当中,方法如上所示。

希望这个回答可以帮到你。

java正则表达式"[^0-9//.]+"与"[0-9//.]+"分别是什么意思

[^0-9//.]+

匹配数字或“/”或“.”以外的字符一次或一次以上

[0-9//.]+

匹配数字或“/”或“.”一次或一次以上

其中//是在java编译环境中“/”加上转义字符,

另外“.”在方括号中表示的就是“.”,其他场合下表示任意可见字符。

Java程序如何打包有哪些方法

这里以打包为exe程序为例,简单介绍一下如何将Java编写的程序打包为Windows环境下可以直接执行的exe程序,主要用到exe4j这个工具,以Eclipse为例(IDEA也行):

这里为了方便说明打包过程,我新建了一个Swing窗口,主要代码如下,非常简单,后面的打包就是围绕这个程序展开:

1.首先,需要将Java程序打包为Jar包,这个直接右击文件,依次选择“Export”->“Java”->“Jarfile”,指定导出的目录,点击“Finish”完成就行,如下:

2.接着就需要下载exe4j,这个直接到官网上下载就行,地址https://exe4j.apponic.com/,一个exe文件,直接安装就行,如下:

3.安装完成后,我们就可以直接开始打包过程了,主要步骤及截图如下:

首先,打开这个软件,依次跳过“Welcome”和“ProjectType”,直接进入“ApplicationInfo”界面”,输入应用的名称、Jar包所在的目录及执行的目录,如下:

接着点击Next,进入“Executableinfo”界面,这里需要输入exe应用的名称,同时需要在“AdvancedOptions”中选择“32-bit或64-bit”,如下:

如果是打包64位的程序,这里需要勾选如下选项,不然程序在运行时会出错:

点击Next,进入“Javainvocation”界面,这里我们点击右边的“+”号,导入我们刚才的Jar包,同时需要设置程序入口主类,如下:

点击Next,进入“JRE”界面,这里我们需要设置程序运行所需要的最低JRE版本,低于这个版本,程序则不能正常运行,如下:

最后,依次点击Next,直到Finished完成,就会在当前Jar包目录下生成一个exe文件,也就是我们打包好的exe程序,如下:

双击这个exe文件,程序就可直接运行,如下:

至此,我们就完成了将Java程序打包为Windows环境下可执行的exe程序。总的来说,整个过程非常简单,配置过程也不难,只要你熟悉一下上面的流程和步骤,很快就能掌握的,后续你也可以进一步制作为setup安装文件,网上也有现成的工具,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。

有人说C、C++、java、python编程语言都是高级语言,为什么只有C和C++可以编写单片机程序

呵呵!这就得谈历史了,高级语言与低级语言的区别是什么是相对什么为高级?什么是低级?计算机最基本的语言就是机器码,汇编语言是为机器码对应的助记符,那么业界就认为汇编和机器码是机器语言然而人不易理解称之为低级语言,c,c++,Java,等为自然语言(人类能够理解的语言)所以称之为高级语言,最后为什么c,c++能够写单片机程序呢?是因为c,c++编译器能直接编译出单片机平台的机器码,如果Java等其他语言也能编译出单片机的机器码,那么他们也是能够编译单片机程序的,比如使用lua脚本就可以写单片机代码,他的原理是c语言里内嵌lua解释语言引擎!好的喜欢的读者可关注我的头条好”嘿咪编程专家”可用私信和留言一起学习交流

好了,关于java编译环境和java的编译过程及原理的问题到这里结束啦,希望可以解决您的问题哈!

最新文章