linux与java linux难学吗?
这篇文章给大家聊聊关于linux与java,以及linux难学吗?对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
linux和java的关系
Java和Linux的理想关系是,一方面有一种可以在所有操作系统上运行的语言,另一方面操作系统可以根据需要进行各种计算。这种关系本身在过去,现在或者将来都可以实现,但现在目前Java并没有在Linux界唤起多大的兴趣,原因主要在于Java和Linux群体和技术在原则性和专业性上存在差异造成的。
原则性的差异涉及开放源码和免费软件这两个术语。Java既不开放也不免费,而Linux坚持这两个原则,至少在理论上是这样。此外,Java倡导者也必须明白,在Linux界存在着一个明显的分歧,大部分Linux人士都非常注重“free”这个词,虽然有些人是从经济上来了解这个词,但无论怎样他们都坚持开放源码的原则。尽管Linux有向各个阶层推广的趋势,但目前来说自由软件的积极倡导者主要来自世界各大学的学生和研究人员。他们对Linux的发展是非常关键的,为开发Linux和操作系统软件输送了大批的人才。
开放源码和Linux的商业价值取决于那些用Linux为市场开发产品的开发人员,以及喜欢根据自己需要用Linux对操作系统进行自定义的人们。如果必要,这些人会出钱购买Linux,因为它是一种开放的源码。他们对Linux的发展也是至关重要的,否则,Linux将只是一堆计算机课程和深奥的研究课题。
linux 与 java 有啥区别
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。而Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。两者从本质上讲没有可比性。两者的区别就像是Windows和Office的区别一样。
Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为Java,并重新设计用于开发Internet应用程序。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Javaapplet。另一方面,Java技术也不断更新。Java自面世后就非常流行,发展迅速,对C++语言形成有力冲击。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。
Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。免费、可靠、安全、稳定、多平台是Linux内核的主要特点。
java调用linux命令行
java怎么调用linux命令行呢?下面是java调用linux命令行的具体方法介绍:
java调用linux命令行有两种调用方式。一种是直接调用linux命令,二是将linux命令写到.sh脚本中,调用脚本执行。
1、直接调用:
使用java中lang包下面的Runtime类和Process类,其中Runtime类中的Runtime.getRuntime().exec(linux command)方法可以直接执行linux命令,而Process类可以接收Runtime.getRuntime().exec()类的返回值,并提供了waitFor()方法和destroy()方法,waitFor()方法的作用在于等待此process执行完成后再执行后面的内容,destroy()方法作用在于销毁process。
2、调用shell脚本:
直接调用方法存在一些弊端,比如复杂命令不好实现、有些命令莫名其妙实现不了等。因此我推荐使用调用shell脚本的方式实现linux命令。具体实现方法为:首先将命令写在shell脚本(.sh)中,然后在Runtime.getRuntime().exec()中调用“sh path/.sh”,其中path为shell脚本的路径。
实现案例如下图所示:
其中imp.sh中的命令是:
1 name=$12 su- oracle-c imp user/pwd@实例名 file=filepath full=y ignore=y
该语句实现的功能为在root用户下,切换到oracle目录,并将某个.dmp文件使用imp命令导入oracle数据库,然后返回到root用户下,将该语句放到for循环中实现了多个.dmp文件导入oracle数据库的功能。其中.dmp文件的文件名是变量,在shell命令中以name=$1代替,在linux命令中以${name}代指文件名,在调用时传入该参数的值,linux命令中$1,$2…$n是占位变量,在使用变量时按顺序使用,赋值时按照相应的顺序进行赋值。