java中的镜像是什么?虚拟机中的镜像是啥意思啊
其实java中的镜像是什么的问题并不复杂,但是又很多的朋友都不太了解虚拟机中的镜像是啥意思啊,因此呢,今天小编就来为大家分享java中的镜像是什么的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
java jstack
java jstack是什么,让我们一起了解一下?
jstack是java虚拟机自带的一种堆栈跟踪工具,用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,主要分为两个功能:针对活着的进程做本地的或远程的线程dump,以及针对core文件做线程dump。
jstack的概念是什么?
1、jstack命令的语法格式:jstack
2、Dump文件:Dump文件是进程的内存镜像。可以把程序的执行状态通过调试器保存到dump文件中。Dump文件是用来给驱动程序编写人员调试驱动程序用的,这种文件必须用专门的工具软件打开,比如使用Windbg。
在Windbg中可以通过.dump命令保存进程的dump文件。比如下面的命令把当前进程的镜像保存为c:\testdump.dmp文件:.dump/ma c:\testdump.dmp。
其中、ma参数表示dump文件应该包含进程的完整信息,包括整个用户态的内存,这样dump文件尺寸会比较大,信息非常全面。如果不是用、ma参数,保存下来的dump文件只包含了部分重要资料,比如寄存器和线程栈空间,文件尺寸会比较小,无法分析所有的数据。
3、java线程Dump:线程dump是非常有用的诊断java应用问题的工具,每一个java虚拟机都有及时生成显示所有线程在某一点状态的线程dump的能力。虽然各个java虚拟机线程dump打印输出格式上略微有一些不同,但是线程dump出来的信息包含线程基本信息;线程的运行状态、标识和调用的堆栈;调用的堆栈包含完整的类名,所执行的方法,如果可能的话还有源代码的行数。
jstack是如何使用的?
实战案例如下: package concurrency; import java.io.IOException; import java.io.InputStream; public class Test { public static void main(String[] args) throws InterruptedException, IOException { InputStream is = System.in; int i = is.read(); System.out.println("exit。"); }}
如何把java 应用 制作成docker镜像
利用Dockerfile构建一个简单的java应用镜像,依赖环境比较简单,JDK,定制化的Tomcat(名为star-appserver)
1、环境准备
ubuntu:14.04
docker: 1.4
jdk:jdk-8u31-linux-x64.gz
tomcat: 7.0(star-appserver)
在/usr/local下创建目录:sms,将jdk-8u31-linux-x64.gz和star-appserver(此处为了简单,已包含应用)拷贝到此目录下,由于Docker在构建镜像时,需将Dockerfile所在目录传给Docker daemon作为构建上下文,所以此目录下应包含构建时所依赖的各种环境。
2、环境准备好后,在sms下创建Dockerfile(名字必须为Dockerfile)文件,内容如下
FROM ubuntu:latest
MAINTAINER zhangjy
#install JDK and TOMCAT
ADD jdk-8u31-linux-x64.gz/usr/local/
ADD tomcat/usr/local/#tomcat下为star-appserver,如果直接复制star-appserver,只会复制目录里边的内容,不会复制目录本身
ADD timezone/etc/
#启动脚本,用于从镜像启动容器时调用执行,见下面的ENTRYPOINT
ADD onStart.sh/usr/local/
ENV JAVA_HOME=/usr/local/jdk1.8.0_31 CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar PATH=$PATH:$JAVA_HOME/bin
RUN echo"JAVA_HOME=/usr/local/jdk1.8.0_31\nCALSSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar\nPATH=$PATH:$JAVA_HOME/bin">>/etc/profile
#start tomcat
ENTRYPOINT ["/usr/local/onStart.sh"]
3、在sms下创建onStart.sh,并赋予执行权限,用于启动tomcat并输出日志(为了保证容器中有执行状态的进程,否则容器停止)
#!/bin/bash
/usr/local/star-appserver/bin/startup.sh
tail-f/usr/local/star-appserver/logs/stariboss.log
4、在sms下执行命令,创建成功
$docker build-t zhangjy/starsms:v1.
启动时,发现应用访问数据库报错:ORA-01882: timezone region not found,原因是JVM默认使用Ubuntu的/etc/timezone里配置的时区,查看timezone时区为Etc/UTC,再查看ORACLE数据库支持的时区:select* from V$TIMEZONE_NAMES发现没有,于是又在sms目录下创建了一个timezone文件,将时区配置成Asia/Shanghai,在Dockerfile中加入到镜像/etc/目录下
Dockerfile文件配置说明:
FROM
表明基于哪个镜像创建
MAINTAINER
作者和邮箱
ADD
将目录或文件加入到镜像的某个目录,格式是ADD<源文件><目标目录>
RUN
有两种格式:
RUN<command>(the command is run in a shell-/bin/sh-c- shell form)
RUN ["executable","param1","param2"](exec form)
默认RUN后的命令是在/bin/sh下执行,像Ubuntu默认/bin/sh是指向/bin/dash,如果想使用/bin/bash,则可按如下方式
RUN ["/bin/bash","-c","source/etc/profile"]
但需注意,这种方式不能解析类似于$HOME的参数引用
ENV
设置环境变量,在镜像构建过程中和容器启动后均有效
CMD
CMD在容器运行的时候提供一些命令及参数,用法如下:
CMD ["executable","param1","param2"](exec form, this is the preferred form) CMD ["param1","param2"](as default parameters to ENTRYPOINT) CMD command param1 param2(shell form)
-第一种用法:运行一个可执行的文件并提供参数。
-第二种用法:为ENTRYPOINT指定参数,即为ENTRYPOINT指定命令的默认参数,通过docker run命令传过来的参数会将其覆盖
-第三种用法(shell form):是以”/bin/sh-c”的方法执行的命令。
如指定:
1. CMD [“/bin/echo”,“this is a echo test”]
build后运行(假设镜像名为ec):
1. docker run ec
就会输出: this is a echo test
注意:如果在docker run命令后指定命令,如docker run ec echo'test',会将CMD的命令覆盖。CMD的命令不能接收run传过来的参数,而ENTRYPOINT可以
ENTRYPOINT
有两种用法
ENTRYPOINT ["executable","param1","param2"](the preferred exec form)
ENTRYPOINT command param1 param2(shell form)
第一种可以接收docker run命令传过来的参数(即使docker run传过来的是命令,也会被当做参数处理),如果想覆盖,可使用docker run...--entrypoint<COMMAND>
hprof是什么文件能删不
Hiberfil.sys是 Windows休眠功能(Windows Hibernation),将内存数据与会话保存至硬盘、以便计算机断电重新启动后可以快速恢复会话所需的内存镜像文件。
在早期版本的 Windows中,Hiberfil.sys文件的大小等同于物理内存大小;而在 Windows 7中,Hiberfil.sys可以在物理内存大小的 50%-100%的范围自行调整。
因此, Windows 7的 Hiberfil.sys大小不一定等同于物理内存大小。如果有超大内存,那么Hiberfil.sys会占用很大的磁盘空间。
Hiberfil.sys是可以删除的,具体操作方法如下:
1、首先打开电脑,打开“我的电脑”,打开C盘。按下Alt键,调出菜单栏。
2、点击工具-文件夹选项。
3、点击查看,找到“隐藏文件和文件夹”,选择“显示隐藏的文件、文件夹和驱动器”,点击确定。
4、首先要用管理员身份打开命令提示符。操作顺序如下。开始,附件,命令提示符,右键,管理员方式打开。
5、比如在物理内存容量 4GB的 Windows 7计算机中,如果以管理员权限执行命令:
powercfg-h-size 70,即可将这台计算机的 C:\Hiberfil.sys减小为 2GB的 70%,即 2.8GB。
6、命令窗口中输入 powercfg-h off,即可关闭休眠功能,同时 Hiberfil.sys文件也会自动删除。
7、开启休眠功能:在cmd命令窗口中输入 powercfg-h on,就能开启休眠功能。
虚拟机中的镜像是啥意思啊
镜像(Mirroring)是一种文件存储形式,是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像。
虚拟机技术是虚拟化技术的一种,所谓虚拟化技术就是将事物从一种形式转变成另一种形式,最常用的虚拟化技术有操作系统中内存的虚拟化,实际运行时用户需要的内存空间可能远远大于物理机器的内存大小,利用内存的虚拟化技术,用户可以将一部分硬盘虚拟化为内存,而这对用户是透明的。
又如,可以利用虚拟专用网技术(VPN)在公共网络中虚拟化一条安全,稳定的“隧道”,用户感觉像是使用私有网络一样。
扩展资料:
虚拟机的规范对于object内部的结构没有任何特殊的要求。在Sun公司的实现中,对object的引用是一个句柄,其中包含一对指针:一个指针指向该object的方法表,另一个指向该object的数据。用Java虚拟机的字节码表示的程序应该遵守类型规定。
Java虚拟机的实现应拒绝执行违反了类型规定的字节码程序。Java虚拟机由于字节码定义的限制似乎只能运行于32位地址空间的机器上。但是可以创建一个Java虚拟机,它自动地把字节码转换成64位的形式。从Java虚拟机支持的数据类型可以看出,Java对数据类型的内部格式进行了严格规定,这样使得各种Java虚拟机的实现对数据的解释是相同的,从而保证了Java的与平台无关性和可移植性。
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!