-
2021-03-07 10:11:45
写好一个编程之后,就要将其运行,只有程序写的对,最后的运行结果才对,可是java程序怎么运行呢?今天我们就给大家讲解一下java程序运行方法,给不会的java人员解决难题!
第一步:下载并安装JDK 6.0,安装路劲为: C:\java\jdk1.6 。
第二bai步:对“我的电脑”按右键,选“属性”,在“系统属性”窗口中选“高级”标签,再按“环境变量”按钮,弹出一个“环境变量”的窗口,在系统变量中新建一个变量,变量名为“JAVA_HOME“,变量值为"C:\java\jdk1.6";如果存在"PATH"变量名,按编辑,在变量值最前面输入"C:\java\jdk1.6\bin;".(注意以分号结尾,没有引号.如果没有"PATH",点击新建一个"PATH"变量名,变量值一样)。
第三步:单击Windows
xp的“开始”->“运行”,在弹出的运行窗口中输入cmd,按回车,打开一个命令行窗口,输入javac,将会看见一系列javac常用参数选项.
恭喜你java环境安装成功了。
第四步:开始编程(注意先双击打开"我的电脑",在"工具" ->"文件夹选项" -> 点击"查看"选项
->在"高级设置"中找到"隐藏已知文件类型的扩展名"前面的小勾去掉)。在C盘的根目录中新建一个子目录,名为"JavaTest”,以作为存放
Java源代码的地方。在JavaTest文件夹中,新建文本文档, 把“新建
文本文档.txt”改为"HelloWorld.java"。用记事本打开"HelloWorld.java", 输入:public class HelloWorld
{
public static void main(String[] args)
{
System.out.println("Hello, world!");
System.out.println("恭喜你成功运行了第一个java应用程序!");
}
}
注意源文件名必须与类名相同,且类修饰符为public,文件名后缀为".java".保存文件。
第五步:在命令行窗口中输入 cd C:\JavaTest,将当前路径转入JavaTest目录中。然后,输入 javac
HelloWorld.java,JDK就在JavaTest文件夹中编译生成一个HelloWorld.class的类文件。
第六步:在命令行窗口中输入 java HelloWorld,(注意没有.class后缀)屏幕出现了
Hello world!
恭喜你成功运行了第一个java应用程序!
表示成功了,也就顺利地编译及运行了第一个Java应用程序。
java程序运行的方法还是很简单的,学会运行程序时java人员必须要学的技能,所以不会的可以参考这写方法哦!最后大家如果想要了解更多java常见问题知识,敬请关注奇Q工具网。
推荐阅读:
更多相关内容 -
sqlite运行所需Vc++运行环境,纯净版System.Data.SQLite.dll及SQLite.Interop.dll
2018-03-27 11:11:15解决System.Data.SQLite兼容32位和64位问题,包含vc++运行时环境 将当前说明文档的目录下的x64、x86目录和System.Data.SQLite.dll文件复制到您的应用程序根目录中(注意更新引用)。 如果是WEB网站,则复制到Bin... -
phpstudy所需的vc11和vc14运行库
2016-04-21 19:40:49phpstudy启动php5.5所需的32位vc11运行库,启动php7所需的32位和64位vc14运行库 -
Java代码是怎么运行的?
2021-12-17 20:37:37Java代码是怎么运行的?前言为什么 Java 要在虚拟机里运行?Java 虚拟机具体是怎样运行 Java 字节码的?Java 虚拟机的运行效率究竟是怎么样的?总结 前言 Java 和 C++ 在运行方式上的区别: Java 代码有很多种不同...
前言
Java 和 C++ 在运行方式上的区别:
Java 代码有很多种不同的运行方式。比如说可以在开发工具中运行,可以双击执行 jar 文件运行,也可以在命令行中运行,甚至可以在网页中运行。当然这些执行方式都离不开 JRE(Java 运行时环境)。
实际上,JRE 仅包含运行 Java 程序的必需组件,包括 Java 虚拟机以及 Java 核心类库等。Java 程序员经常接触到的 JDK(Java 开发工具包)同样包含了 JRE,并且还附带了一系列开发、诊断工具。
然而,运行 C++ 代码则无需额外的运行时。把这些代码直接编译成 CPU 所能理解的代码格式,也就是机器码。
比如下图的中间列,就是用 C 语言写的 Helloworld 程序的编译结果。C 程序编译而成的机器码就是一个个的字节,它们是给机器读的。为了让开发人员也能够理解,可以用反汇编器将其转换成汇编代码(如下图的最右列所示)。
#最左列是偏移;中间列是给机器读的机器码;最右列是给人读的汇编代码 0x00: 55 push rbp 0x01: 48 89 e5 mov rbp,rsp 0x04: 48 83 ec 10 sub rsp,0x10 0x08: 48 8d 3d 3b 00 00 00 lea rdi,[rip+0x3b] ; 加载"Hello, World!\n" 0x0f: c7 45 fc 00 00 00 00 mov DWORD PTR [rbp-0x4],0x0 0x16: b0 00 mov al,0x0 0x18: e8 0d 00 00 00 call 0x12 ; 调用printf方法 0x1d: 31 c9 xor ecx,ecx 0x1f: 89 45 f8 mov DWORD PTR [rbp-0x8],eax 0x22: 89 c8 mov eax,ecx 0x24: 48 83 c4 10 add rsp,0x10 0x28: 5d pop rbp 0x29: c3 ret
为什么 Java 要在虚拟机里运行?
Java 作为一门高级程序语言,它的语法非常复杂,抽象程度也很高。因此,直接在硬件上运行这种复杂的程序并不现实。所以在运行 Java 程序之前,需要对其进行一番转换。
转换的主流思路是设计一个面向 Java 语言特性的虚拟机,并通过编译器将 Java 程序转换成该虚拟机所能识别的指令序列,也称 Java 字节码。这个取名是因为 Java 字节码指令的操作码(opcode)被固定为一个字节。
例如,下图的中间列,正是用 Java 写的 Helloworld 程序编译而成的字节码。可以看到,它与 C 版本的编译结果一样,都是由一个个字节组成的。同样可以将其反汇编为人类可读的代码格式(如下图的最右列所示)。不同的是,Java 版本的编译结果相对精简一些。这是因为 Java 虚拟机相对于物理机而言,抽象程度更高。
# 最左列是偏移;中间列是给虚拟机读的机器码;最右列是给人读的代码 0x00: b2 00 02 getstatic java.lang.System.out 0x03: 12 03 ldc "Hello, World!" 0x05: b6 00 04 invokevirtual java.io.PrintStream.println 0x08: b1 return
Java 虚拟机可以由硬件实现,但更为常见的是在各个现有平台(如 Windows_x64、Linux_aarch64)上提供软件实现。这么做的意义在于:
-
一旦一个程序被转换成 Java 字节码,那么它便可以在不同平台上的虚拟机实现里运行,“一次编写,到处运行”。
-
带来了一个托管环境(Managed Runtime)。这个托管环境能够代替我们处理一些代码中冗长而且容易出错的部分,例如,自动内存管理与垃圾回收,这部分内容甚至催生了一波垃圾回收调优的业务。
-
托管环境还提供了数组越界、动态类型、安全权限等等的动态检测,免于书写这些无关业务逻辑的代码。
Java 虚拟机具体是怎样运行 Java 字节码的?
以标准 JDK 中的 HotSpot 虚拟机为例,从虚拟机以及底层硬件两个角度,介绍 Java 虚拟机具体是怎么运行 Java 字节码的。
从虚拟机视角来看,执行 Java 代码:
首先需要将它编译而成的 class 文件加载到 Java 虚拟机中。加载后的 Java 类会被存放于方法区(Method Area)中。
实际运行时,虚拟机会执行方法区内的代码。如果熟悉 X86 的话,会发现这和段式内存管理中的代码段类似。而且,Java 虚拟机同样也在内存中划分出堆和栈来存储运行时数据。不同的是,Java 虚拟机会将栈细分为面向 Java 方法的 Java 方法栈,面向本地方法(用 C++ 写的 native 方法)的本地方法栈,以及存放各个线程执行位置的 PC 寄存器。
在运行过程中,每当调用进入一个 Java 方法,Java 虚拟机会在当前线程的 Java 方法栈中生成一个栈帧,用以存放局部变量以及字节码的操作数。这个栈帧的大小是提前计算好的,而且 Java 虚拟机不要求栈帧在内存空间里连续分布。
当退出当前执行的方法时,不管是正常返回还是异常返回,Java 虚拟机均会弹出当前线程的当前栈帧,并将之舍弃。
从硬件视角来看,Java 字节码无法直接执行。因此,Java 虚拟机需要将字节码翻译成机器码。
在 HotSpot 里面,上述翻译过程有两种形式:
- 解释执行,即逐条将字节码翻译成机器码并执行,优势在于无需等待编译;
- 即时编译(Just-In-Time compilation,JIT),即将一个方法中包含的所有字节码编译成机器码后再执行,优势在于实际运行速度更快;
HotSpot 默认采用混合模式,综合了解释执行和即时编译两者的优点。它会先解释执行字节码,而后将其中反复执行的热点代码,以方法为单位进行即时编译。
Java 虚拟机的运行效率究竟是怎么样的?
HotSpot 采用了多种技术来提升启动性能以及峰值性能,即时编译便是其中最重要的技术之一。
即时编译建立在程序符合二八定律的假设上,也就是百分之二十的代码占据了百分之八十的计算资源。
- 对于占据大部分的不常用的代码,无需耗费时间将其编译成机器码,而是采取解释执行的方式运行;
- 对于仅占据小部分的热点代码,则可以将其编译成机器码,以达到理想的运行速度。
理论上讲,即时编译后的 Java 程序的执行效率,是可能超过 C++ 程序的。这是因为与静态编译相比,即时编译拥有程序的运行时信息,并且能够根据这个信息做出相应的优化。
例如,虚方法是用来实现面向对象语言多态性的。对于一个虚方法调用,尽管它有很多个目标方法,但在实际运行过程中它可能只调用其中的一个。这个信息便可以被即时编译器所利用,来规避虚方法调用的开销,从而达到比静态编译的 C++ 程序更高的性能。
为了满足不同用户场景的需要,HotSpot 内置了多个即时编译器:C1、C2 和 Graal。Graal 是 Java 10 正式引入的实验性即时编译器。引入多个即时编译器是为了在编译时间和生成代码的执行效率之间进行取舍。
C1 又叫做 Client 编译器,面向的是对启动性能有要求的客户端 GUI 程序,采用的优化手段相对简单,因此编译时间较短。
C2 又叫做 Server 编译器,面向的是对峰值性能有要求的服务器端程序,采用的优化手段相对复杂,因此编译时间较长,但同时生成代码的执行效率较高。
从 Java 7 开始,HotSpot 默认采用分层编译的方式:热点方法首先会被 C1 编译,而后热点方法中的热点会进一步被 C2 编译。
为了不干扰应用的正常运行,HotSpot 的即时编译是放在额外的编译线程中进行的。HotSpot 会根据 CPU 的数量设置编译线程的数目,并且按 1:2 的比例配置给 C1 及 C2 编译器。在计算资源充足的情况下,字节码的解释执行和即时编译可同时进行。编译完成后的机器码会在下次调用该方法时启用,以替换原本的解释执行。
总结
Java 之所以要在虚拟机中运行,是因为它提供了可移植性。一旦 Java 代码被编译为 Java 字节码,便可以在不同平台上的 Java 虚拟机实现上运行。
虚拟机还提供了一个代码托管的环境,代替我们处理部分冗长而且容易出错的事务,例如内存管理。
Java 虚拟机将运行时内存区域划分为五个部分,分别为方法区、堆、PC 寄存器、Java 方法栈、本地方法栈。Java 程序编译而成的 class 文件,需要先加载至方法区中,才能在 Java 虚拟机中运行。
为了提高运行效率,标准 JDK 中的 HotSpot 虚拟机采用的是一种混合执行的策略。它会解释执行 Java 字节码,然后会将其中反复执行的热点代码,以方法为单位进行即时编译,翻译成机器码后直接运行在底层硬件之上。
HotSpot 装载了多个不同的即时编译器,以便在编译时间和生成代码的执行效率之间做取舍。
-
-
VC11运行库(微软官方版)32位
2013-08-04 17:50:03这是VC11运行库(微软官方版)32位,一些软件安装需要 -
pycharm每次运行都在python控制台运行
2022-05-06 11:55:221.下拉并点击编辑配置 2.点击编辑配置模板 3.点击取消使用python控制台运行 4.点击确定或应用执行下面操作还没有解决的话,先关闭python控制台中的所有窗口,或直接重启软件
1.下拉并点击编辑配置
2.取消掉当前文件的√号(否则修改设置后当前文件可能还在控制台运行),然后再点击编辑配置模板
3.点击取消使用python控制台运行
4.点击确定或应用
-
运行内存太小怎么办?如何扩大电脑的运行内存?
2021-07-29 02:37:44运行内存,其实指的就是电脑系统在运行时候的内存,它的大小直接决定了运行的程序的多少,那么运行内存太小怎么办?如何扩大电脑的运行内存呢?今天就来介绍下。运行内存介绍运行内存,也称作主存,是指程序运行时...运行内存,其实指的就是电脑系统在运行时候的内存,它的大小直接决定了运行的程序的多少,那么运行内存太小怎么办?如何扩大电脑的运行内存呢?今天就来介绍下。
运行内存介绍
运行内存,也称作主存,是指程序运行时需要的内存,只能临时存储数据用于与CPU交换高速缓存数据,一般多指随机存取存储器(Random Access Memory,RAM)。
如何扩大电脑的运行内存?
电脑内存在电脑运行中起到至关重要的作用,增加运行内存一般可以通过购买或更换大容量的内存来实现。但同样也可以使用免费的方法来增加运行内存,就是不增加物理内存的大小,而是利用增加虚拟内存来扩充电脑的运行内存。
1. 增加内存条添加,这里就业不多说了。
2. 设置虚拟存条方法:
打开【我的电脑】。
在【计算机】位置点右键,选择【属性】。
进入系统界面,点击【高级系统设置】。
点击【高级】-【设置】。
在【性能选项】中再次点击【高级】、【更改】,即可设置虚拟内存大小了。
点击【确认】,我们电脑的运行内存就已经修改完成了。注意设置虚拟内存的大小一般不要大于实际物理内存大小的2倍。
扩展阅读:运行内存RAM是什么
随机存取存储器(英语:Random Access Memory,缩写:RAM),也叫主存,是与CPU直接交换数据的内部存储器。
RAM可以随时读写(刷新时除外),而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质。
RAM工作时可以随时从任何一个指定的地址写入或读出信息。它与ROM的最大区别是数据的易失性,即一旦断电所存储的数据将随之丢失。RAM在计算机和数字系统中用来暂时存储程序、数据和中间结果。
通过以上的内容,我们已经了解了运行内存的情况了,在扩大电脑的运行内存的时候,就可以按照上面的操作方法去做就可以了。
-
JavaScript如何运行
2021-12-03 17:44:21一些小伙伴刚入手前端开发,对Javascript十分陌生,下面就专门总结运行js文件的几种常用方法。 一、Node.js Node.js 就是运行在服务端的 JavaScript。Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的... -
java运行不出来怎么回事?Java如何成功运行?
2021-03-05 14:55:04程序员将程序编写完成之后,肯定要将程序进行运行,如果能运行了,就是表示代码成功了,可是最近有人在运行程序的时候,发现运行不出来,这是怎么回事?今天我们就来给大家讲解一下。如果你发现java运行不出来了,请... -
如何运行vue项目
2022-03-29 18:45:56运行别人的vue项目 -
配置IDEA运行环境
2022-04-05 20:55:38配置IDEA运行环境,可以运行单个Java文件,不需要创建项目。并且附赠了一个免费学习Java的网站! -
小议Java程序不能运行的几种原因
2021-03-14 02:20:56当我们或许是煞费苦心所敲的代码无法运行时,可能我们更多想到的不是自己所敲的代码存在错误,而是系统或者某些外在的客观的原因。多次的运行失败之后,渐渐的意识到很多错误并不是系统的外在的原因,而是自己丢三拉... -
如何用安卓手机运行Python代码
2021-04-15 22:44:03天天都在PC端运行Python代码的我,今天突然灵光一现,想着是不是能够在移动端运行Python代码呢?如果能够实现的话,家里的废旧手机就有用武之地了。 2. 安装环境 2.1 安装APK 根据搜索和调研,需要安装以下... -
音频服务未运行是怎么回事 音频服务未运行怎么办
2021-07-24 02:38:15有时候在开启了电脑之后,就发现电脑下面的音频小喇叭上面出现了一个x号,把鼠标放上去以后显示的是音频服务未运行,这种情况下电脑是没有声音的,那么遇到这种情况要怎么办才好呢?这些都是一些电脑的小常识,所以... -
实现pycharm运行.sh文件——本地运行和打开服务器终端
2022-04-07 16:03:17实现pycharm运行.sh文件——本地运行和打开服务器终端Windows系统下实现pycharm运行.sh文件1、安装Git2、在pycharm中设置terminal3、运行run.sh文件注意① 路径的斜杆要用/② ModuleNotFoundError: No module named ... -
Steam游戏必备运行库安装包
2021-07-13 02:28:19Steam游戏必备运行库安装包是目前互联网上最新最全的常用运行库合集,一些大型的单机游戏中都需要在电脑中安装运行库安装包之后才能玩,有的单机游戏必须安装不同的运行库安装包。Steam游戏必备运行库安装包包含了... -
win7运行截图工具提示截图工具未运行解决方法
2021-07-06 08:18:22但是有时候将win7系统电脑重装后,会发现在运行系统的截图工具时,提示”截图工具未运行“,这是怎么回事呢?接下来分享win7运行截图工具提示"截图工具未运行"的解决方法。推荐: 雨林木风win7旗舰版64位具体解决... -
IntelliJ IDEA运行/调试配置
2021-01-11 23:55:14运行/调试配置IntelliJ IDEA 可以使用大量的运行/调试配置。每个运行/调试配置都代表一组命名的运行/调试启动属性。当您使用 IntelliJ IDEA 执行运行、调试或测试操作时,您始终会基于一个现有配置的参数来启动一个... -
运行uniapp的多种方式
2021-10-09 11:13:161.浏览器运行 进入你创建的项目,点击工具栏的运行 -> 运行到浏览器 -> 选择浏览器,即可在浏览器里面体验uni-app 的 H5 版。 2.真机运行 连接手机,开启USB调试,进入hello-uniapp项目,点击工具栏的运行 -&... -
win10运行内存多大才够用?windows10需要多大运行内存
2021-07-26 07:32:38越来越多的用户都喜欢安装win10系统,然而又不知道自己的电脑配置是否适合win10系统,其中运行内存是很多用户关心的,那么win10运行内存多大才够用,为此,小编这就给大家讲解一下windows10需要多大运行内存吧。... -
mcinabox运行库下载
2021-02-07 03:03:38mcinabox运行库,MCinaBox是一款能在手机上运行我的世界的Java版启动器,运行需要mcinabox运行库的支持,否则无法正常使用,导入运行库前最好至少启动一次!安装方法如何安装MCinabox完整教程。一、准备阶段。你需要... -
如何运行PHP文件
2020-06-22 13:15:30今天,我们将讨论如何运行PHP文件。 如果您不熟悉PHP编程,本文将帮助您学习如何运行PHP脚本。 PHP是一种服务器端脚本语言,主要用于构建基于Web的应用程序。 这些范围可能从非常简单的博客到功能完善的电子商务... -
运行项目到 微信开发者工具和浏览器
2022-01-03 08:54:20文章目录一、运行项目到 微信开发者工具1. 下载安装2. HBuilder X配置3. 设置【微信开发工具路径】4. 运行5. 运行到浏览器 一、运行项目到 微信开发者工具 1. 下载安装 下载地址 安装,一路下一步即可 2. HBuilder ... -
双击运行 jar 文件
2022-03-22 10:18:04windows 下设置双击运行 jar 文件 大家都知道,项目打包的 jar 文件应该是可以直接运行的,虽然我们也可以用指令 java -jar xxx.jar 运行,但是总归是麻烦些,要是能双击直接打开岂不是很方便,下面我们就来一起看... -
软件运行环境该怎么写
2021-07-20 01:29:051. 关于软件的运行环境.NET Framework 是支持生成和运行下一代应用程序和 XML Web services 的内部 Windows 组件。也就是说.NET Framework是Windows的一部分,你要运行C#就必需在Windows的平台上.运行环境,也就是... -
在 Linux 中如何检查正在运行的进程
2022-01-04 14:56:44每天,开发人员都会在终端中使用各种应用程序并运行命令。这些应用程序可能包括浏览器、代码编辑器、终端、视频会议应用程序或音乐播放器。 对于你打开的每个软件应用程序或你运行的命令,它都会创建一个进程或任务... -
uniapp项目的编译运行
2021-12-07 10:37:19这里写目录标题一、准备工作二、编译运行1.使用HBuilder X 软件打开uniapp项目2.点击菜单栏“运行”---》运行到小程序模拟器---》微信开发者工具(W)3.编译过程中,安装必要的插件4.插件安装完成后,重新编译5.编译... -
如何运行python程序
2021-11-14 11:50:59若是循环代码之类的,需要按两次ENTER键才会运行 退出当前编辑python的环境按下ctrl+z 2、在命令行中运行文件 输入python加上文件代码的路径 若不想使用绝对路径则需要运行的文件在当前路径内,可通过在... -
IDEA如何运行web程序
2022-04-27 12:58:23IDEA运行web程序 -
Android Studio怎么运行程序?
2021-06-04 16:41:15原创Android Studio怎么运行程序?编辑:小鑫 来源:PC下载网时间:2017-11-27 15:15:26Android Studio是谷歌推出了新的Android开发环境,开发者可以在编写程序的同时看到自己的应用在不同尺寸屏幕中的样子。同时谷歌对...