简单记录一下 Linux 下的 Java 环境搭建,以及使用方法。
简介
可以通过 rpm -qa | grep java
查看是否已经安装 java 包,CentOS 默认安装的是 openjdk
,常用的 openjdk
、openjdk-headless
、tzdata-java
已经安装,通过 java -version
查看版本号。
将会将代码安装在 /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65-2.5.1.2.el7_0.x86_64/jre/
目录下。
可以删除 openjdk 然后安装 Sun,不太建议,安装 devel 包,含有 jar
jarsigner
javac
javadoc
javah
javap
等软件。
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello! World!");
}
}
文件名必须与类相同,即 HelloWorld.java
,通过 javac HelloWorld.java
编译,java HelloWorld
运行。
JAR 包
Java Archive File, JAR 包是 Java 的一种文档格式,实际上就是 ZIP 文件,唯一的区别就是在 JAR 文件的内容中,包含了一个 META-INF/MANIFEST.MF
文件,该文件是在生成 JAR 时自动创建。
当包含一个 jar 包时,如果不知道所包含的类,可以通过解压包查看。
Java 程序由若干个 .class
文件组成的,这些文件必须根据它们所属的包不同而分级分目录存放,运行前需要把所有用到的包的根目录指定给 CLASSPATH
环境变量或者 java 命令的 -cp
参数。
$ tree
$ jar -cvf hello.jar helloworld
$ jar -tvf hello.jar // 查看JAR包的详细信息
$ jar -xf hello.jar // 解压
在 eclipse 可以直接通过 export 打包。
很多 Java 内部函数在 java-x.x.x-openjdk-headless
中定义。
$ rpm -ql java-1.7.0-openjdk-headless-1.7.0.95-2.6.4.0.el7_2.x86_64 | grep -P '\.jar$' > /tmp/1
$ for i in `cat /tmp/1`; do ls -alh $i; done # 部分文件是符号链接
$ vi /tmp/1 # 去除符号链接
$ for i in `cat /tmp/1`; do echo $i && jar -tvf $i | grep DriverManager; done # 查看相应的接口
安装 Maven
在 CentOS 中也可以 yum install maven
安装,如果版本比较老,可以从 官网 下载二进制包,可以解压到任何目录;新建符号连接,方便升级 ln -s apache-maven-3.2.3 apache-maven
。
在 ~/.bashrc
文件中添加环境变量,然后通过 source ~/.bashrc
更新:
export M2_HOME=/home/andy/Workspace/java/tools/apache-maven
PATH=$PATH:$M2_HOME/bin
通过执行 mvn -v
查看是否安装成功,此时会先是 Java 的版本号等信息。
配置
Linux 中的配置默认保存在 ~/.m2/settings.xml
文件中。
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
<localRepository>/opt/maven/repository</localRepository>
<offline>false</offline>
<proxies>
<!-- proxy
<proxy>
<id>optional</id>
<active>true</active>
<protocol>http</protocol>
<username>proxyuser</username>
<password>proxypass</password>
<host>proxy.host.net</host>
<port>80</port>
<nonProxyHosts>local.net|some.host.com</nonProxyHosts>
</proxy>
-->
</proxies>
<mirrors>
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
<mirror>
<id>maven-default-http-blocker</id>
<mirrorOf>external:http:*</mirrorOf>
<name>Pseudo repository to mirror external repositories initially using HTTP.</name>
<url>http://0.0.0.0/</url>
<blocked>true</blocked>
</mirror>
</mirrors>
<profiles>
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>
</settings>
Scala
可以从 Scala-Lang 上下载,一般是二进制包,例如 RedHat 可以通过 RPM 安装,安装完之后通过 scala -version
查看。编译需要通过 sbt
工具,可以从 Scala-sbt 上下载,解压到指定目录并添加到 PATH
环境变量中。
----- 查看版本
$ sbt -version
----- 测试运行
$ cat HelloScala.scala
object HelloScala extends App {
println("Hello")
}
$ sbt run
运行会生成 compiler-bridge_2.12
包。
安装 Eclipse
另一个比较好用的开发环境是 IDEA 。
安装
在 CentOS 中,可以通过如下步骤安装。
- 从 www.eclipse.org 下载最新的 Eclipse,通常为
eclipse-xxxx-linux-gtk-x86_64.tar.gz
。 - 解压到
/opt
目录下,su - && tar -xvzf eclipse-xxx-linux-gtk.tar.gz -C /opt && ln -s /usr/eclipse/eclipse /usr/bin/eclipse
,此时可以在 Terminal 中通过 eclipse 命令启动。 - 添加文件
vi /usr/share/applications/eclipse-4.4.desktop
,于是可在左上角找到 Eclipse 。
[Desktop Entry]
Encoding=UTF-8
Name=Eclipse 4.4.1
Comment=Eclipse Luna
Exec=/usr/bin/eclipse
Icon=/opt/eclipse/icon.xpm
Categories=Application;Development;Java;IDE
Version=1.0
Type=Application
Terminal=0
maven 工程创建需要一个 groupid 和 artifactid,两者的组合需要全局唯一,一般 groupid 是包名,artifactid 为工程名 (会在 Eclipse 中展示)。
HelloWorld
可以通过如下步骤简单创建一个 Java 项目。
1. 新建 Java 项目
选择 "File → New → Project..."
,选择 "Java Project"
,便打开了 "New Java Project"
向导。在 "Project name"
中填入 "HelloWorld"
,直接点击 "Finish"
按钮。
2. 新建一个 Package
值得注意的是包名和工程名一般都是小写开头,而 Java 类名则是大写开头。选择 "File → New → Package"
,在 "New Java Package"
向导中的 Name 框中输入 "test"
,直接 finish。
3. 新建 HelloWorldApp 类
选择 "File → New → Class"
,在 "New Java Class"
向导中的 Name 框中输入 "HelloWorldApp"
,并且在 "public static void main(String[] args)"
选项前面打上勾;在 Source floder 中选择上步填写的项目。
4. 添加打印语句
在 main 中添加如下内容。
System.out.println("Hello World!");
5. 运行 Java 程序
按下 "Run → Run..."
,Eclipse 会弹出运行设置向导,选择 "Java Application"
。
其它
然后可以右健点击对应文件,"Export... → Runnable JAR file"
,在 Launch configuration
中选择对应的项目,并在 Library handling
中选择 Extract required libraries into generated JAR
。
接着通过 java -jar helloworld.jar
就可以运行。
安装 JDBC
在 CentOS 中可以通过 yum install mysql-connector-java
安装,此时会保存在 /usr/share/java/mysql-connector-java.jar
,如果要使用这个包需要包含全路径,可以设置 CLASSPATH
环境变量,或者:
java -classpath .:/usr/share/java/mysql-connector-java.jar GetConnection
在 Eclipse 中可通过 [右健] -> Properties -> Java Build Path -> Libraries -> Add External JARs
。
可以从 MySQL 官网下载 MySQL Connectors 。
Maven
在 eclipse 中设置 maven,Window -> Preference -> Maven -> {Installations, User Settings}
,配置文件可以统一使用集团的,可以设置全局以及用户的,此时会自动生成 repository 目录。
可以通过如下的方法在 Eclipse 中创建一个最简单的 Maven 工程,步骤如下 File -> New -> Project... -> Maven[Maven Project] -> Next... -> 选择 quickstart
即可。
然后点击运行,可以看到一个最简单的 Hello World
程序,如果出现 Missing artifact
,修改后可以通过 [右键] -> Maven -> Update Project...
即可。
创建 mvn 工程,也可以执行如下命令创建一个 maven 工程,然后导入。
$ mvn archetype:generate -DgroupId=abc -DartifactId=hello \
-DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false