轻松实现Java程序在Linux系统上的运行 (linux 运行java程序)

Java是一种跨平台的编程语言,可以在不同的操作系统上运行。尤其是在Linux系统上,Java的应用越来越广泛。这篇文章将介绍如何在Linux系统上轻松实现Java程序的运行。

一、安装Java环境

在Linux系统上运行Java程序,首先需要安装Java环境。可以到Oracle官网下载Java开发工具包(JDK),并按照说明安装。或者可以使用系统自带的包管理器安装OpenJDK,命令如下:

sudo apt-get install openjdk-8-jdk

安装完成后,使用以下命令验证Java是否已正确安装:

java -version

如果安装成功,将显示Java的版本信息。

二、编写Java程序

在Linux系统中编写Java程序,可以使用任何文本编辑器,如Vim、Emacs、Sublime等。以下是一个简单的Java程序示例:

public class HelloWorld {

public static void mn(String[] args) {

System.out.println(“Hello World!”);

}

}

将程序保存为HelloWorld.java,注意文件名要与类名相同。

三、编译Java程序

Java程序需要先编译成字节码才能在Java虚拟机(JVM)上运行。在Linux系统上,使用以下命令编译Java程序:

javac HelloWorld.java

如果没有报错,将生成一个HelloWorld.class文件。此时Java程序已编译完成。

四、运行Java程序

在Linux系统上运行Java程序,需要在命令行中输入以下命令:

java HelloWorld

如果一切正常,将在屏幕上看到“Hello World!”的输出。

如果程序还需要其它参数,可以在命令行中输入:

java HelloWorld arg1 arg2 …

arg1、arg2等为程序需要的参数。

五、打包Java程序

Java程序也可以打包成JAR(Java Archive)文件,这样可以方便地在不同的机器上运行。在Linux系统上,使用以下命令打包Java程序:

jar cvf HelloWorld.jar HelloWorld.class

其中,cvf为选项,表示创建并添加文件到JAR包。

六、运行JAR文件

使用以下命令在Linux系统上运行JAR文件:

java -jar HelloWorld.jar

如果一切正常,将在屏幕上看到“Hello World!”的输出。

七、设置CLASSPATH

在运行Java程序时,如果程序需要引用其它的类,可以使用CLASSPATH变量来指定类路径。在Linux系统中,使用以下命令设置CLASSPATH:

export CLASSPATH=path/to/class

其中,path/to/class为类路径。也可以使用绝对路径,如:

export CLASSPATH=/home/user/workspace/myproject/bin

以上是在临时会话中设置CLASSPATH。如果需要永久设定CLASSPATH,可以在用户的.bashrc文件中添加上述命令。

八、Linux系统的Java日志

在Linux系统中,Java程序的日志信息通常保存在/usr/java/latest/目录下。可以使用以下命令查看Java日志:

tl -f /usr/java/latest/jre/lib/logging.properties

以上命令可以实时查看Java日志输出。

Java程序在Linux系统上的运行需要安装Java环境,并完成编译、打包等步骤。本文介绍了在Linux系统中运行Java程序的基本方法,希望可以对初学者有所帮助。

相关问题拓展阅读:

Java程序在linux系统下运行,为什么会占用很多虚拟内存

RSS列 表示, 程序占用了多少物理内存。 虚拟内存可以不用考虑,它并不占用实际物理内存。 (2). top 命令也可以 其中VIRT(或VSS)列 表示,程序占用了多少虚拟内存。 同 ps aux 中的 VSZ列 RES列 表示, 程序占用了多少物理内存。同 ps aux 中的RSS列 2.在linux下, 查看当前系统占用了多少内存, 一般的命令是 free其中, free就是系统还有多少内存可以使用。但由于 linux 系统对内存使用有一个原则, 就是, 内存是宝贵的, 能使用多少就使用多少。 所以, linux会把已经调用过的包缓存起来,放在内存里。这样,实际上,可以使用的内存,就可以理解为, free+buffers+cached3.当你了解完这些命令以后, 再去使用ps aux 命令去查看的时候, 会发现一个奇怪的现象。 所有的 RSS 列的数据,加起来, 比物理内存的数要大很多。 比如, 物理内存为2G, 而RSS列的数据加起来,可能有5个G之多, 这是怎么回事了? 这是因为RSS列的值骗了我们。 linux的内存机制是这样的: 在运行一个程序时, linux会调用该程序依赖的链接库, 如lib.xx.so。 首先看该链接库是否被映射进内存中,如果没有被映射,则将代码段与数据段映射到内存中,否则只是将其加入进程的地址空间。 这样,当N个程序,依赖到lib.xx.so的时候, 实际上,内存中只有一个lib.xx.so ,而不是N个。 而RSS在显示一个程序占用的实际物理内存时, 将lib.xx.so也算了进来。 比如, X程序, 本身占用内存为5M, lib.xx.so 占用内存2M,lib.xx.so被N个程序共享依赖。 则RSS显示为,X程序运行,占用内存为7M。 实际上, X程序占用了5M空间。 多余的2m被讨入到RSS中了。 当你在用ps aux显示内存占用情况时, N个共享依赖lib.xx.so的N个程序,都把这2m空间,算在自己的RSS中了, 这样RSS的sum值,就比实际物理内存多了。 当然, linux的内存使用机制很复杂, 不是一句两句能说清楚的。这里只是简单的绝神说明了一下, ps aux中的RSS值, 并不能真实反映物理内存的使用情况。 4. 如果查看更详细的内存使用情况, 可用以下几种方法, 或者几种方法结合使用:这几种方法,都需要root账户的权限(1). pmap -d $pid $pid 是正在运行的程序的pid(2). cat /proc/$pid/aps aps的数据比较详细,可简单的归纳一下,归纳的命令如下: cat /proc/$pid/aps awk ‘/SizeRssPssSharedPrivateReferencedSwap/{val_name=gensub(/(*).*/,”\\1″,1,$1); list+=$2; }END{for(val in list)print val,list;}’ (3). cat /proc/闹羡$pid/maps(4). cat /proc/$pid/statm输出解释之一列 size:任务虚拟地址空间大小 第二列 Resident:正在使用的物理内存大小 第三列 Shared:共享页数 第四列 Trs:程序所拥有的可执行虚拟内存大小 第五列 Lrs:被映像倒任务的虚拟内存空间的库的大小 第六列 Drs:程序数据段和用户态的栈的大小 第七列 dt:脏页数量(5). vmstat这个命令据说也可以提供一些参考信息,具体还液宏拍未研究 5.作为phper,尝试过使用php的函数memory_get_usage(), 该函数也不能得到php当前运行的程序,实际的,真正占用的内存数量。 如果真想得到,php真正占用的内存, 大概只能在, 程序运行的开始,执行一次memory_get_usage(). 在程序运行结束,执行一次memory_get_usage()。 将两者的值相减,得到的值, 应该是一个相对比较准确的,内存占用数量了。 这个方法还没有测试, 考虑到, 得到这个数量,也没有实际意义, 加上平时又比较忙,懒得试了。

谁会写在linux服务器上运行java程序的运行脚本

你是要单次运行还是不挂断在后台运行?单次直接java -jar .jar 就可以了,不挂断的话,可以编写一个shell脚本,start.sh 内容如下

#!/bin/sh

nohup java -jar -XX:PermSize=64m -XX:MaxPermSize=128m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:SurvivorRatio=8 .jar>/dev/null 2>&1 &

具体的参数你自己把握,然后保存,给这个脚本赋于可执行权限,chmod +x start.sh

然后执行这个脚本,野首sh start.sh ,然后查看一下java进颂型数程,看这个租消服务起来没有,jps

linux 运行java程序的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux 运行java程序,轻松实现Java程序在Linux系统上的运行,Java程序在linux系统下运行,为什么会占用很多虚拟内存,谁会写在linux服务器上运行java程序的运行脚本的信息别忘了在本站进行查找喔。


数据运维技术 » 轻松实现Java程序在Linux系统上的运行 (linux 运行java程序)