JAVA环境配置

简介:

这两天想写一个Java程序,在官网上下载了一个JDK:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
我的操作系统是CentOS,32位的。所以我下载了一个对应32位的JDK包:jdk-7u17-linux-i586.tar.gz

解压:
$ tar -zxvf jdk-7u17-linux-i586.tar.gz

将解压所得的目录移动到 /usr/ 上。

在 /etc/profile.d/ 路径下创建了一个java-env.sh文件,编辑内容如下:


# this file is for java runtime enviroment configure
 
JAVA_HOME=/usr/jdk1.7.0_17
 
PATH=${JAVA_HOME}/bin:$PATH
CLASSPATH=.:${JAVA_HOME}/lib/tools.jar:${JAVA_HOME}/lib/dt.jar

上面这个脚本的功能是配置3个环境变量:PATH, JAVA_HOME, CLASSPATH
然后重新打开终端生效,验证一下是否成功:
$ echo $JAVA_HOME
$ echo $PATH
$ echo $CLASSPATH
如果执行结果均为预期结果,基本上就没有什么大的问题了。

为什么要这么做?因为每次启动Shell的时候系统都会执行/etc/profile脚本程序,该程序会依次执行/etc/profile.d/*.sh文件。这里在/etc/profile.d/目录下添加一个java-env.sh文件,每次启动的时候都会执行。

写一个简单的JAVA程序来验证一下:
在当前目录下建一个HelloWorld.java文件,打开并编译: 


public class HelloWorld{
    public static void main (String[] args){
        System.out.println("Hello world!");
    }
}

然后执行命令进行编译:
$ javac HelloWorld.java

完成编译后,当前路径下会生成了一个HelloWorld.class文件。执行看看:
$ java HelloWorld
Hello world!

遇到的问题:
(1) 我在运行"java HelloWorld"的时候程序输出错误信息:
Exception in thread "main" java.lang.UnsupportedClassVersionError: HelloWorld : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: HelloWorld. Program will exit.
出错原因是用了高版本的javac编译了程序,用了低版本的java来运行,版本不兼容所以出错了。
查得深层次的原因是因为系统原来就自带得有一个低版本的java程序,就是/usr/bin/java。系统默认就用它了。
解决方法:将java-env.sh文件中的
PATH=$PATH:${JAVA_HOME}/bin
改成:
PATH=${JAVA_HOME}/bin:$PATH
让系统默认使用我们新的java程序。 


目录
相关文章
|
3月前
|
Java 应用服务中间件 Windows
【应用服务 App Service】App Service 中部署Java项目,查看Tomcat配置及上传自定义版本
【应用服务 App Service】App Service 中部署Java项目,查看Tomcat配置及上传自定义版本
|
16天前
|
Java 数据库连接 数据库
如何构建高效稳定的Java数据库连接池,涵盖连接池配置、并发控制和异常处理等方面
本文介绍了如何构建高效稳定的Java数据库连接池,涵盖连接池配置、并发控制和异常处理等方面。通过合理配置初始连接数、最大连接数和空闲连接超时时间,确保系统性能和稳定性。文章还探讨了同步阻塞、异步回调和信号量等并发控制策略,并提供了异常处理的最佳实践。最后,给出了一个简单的连接池示例代码,并推荐使用成熟的连接池框架(如HikariCP、C3P0)以简化开发。
37 2
|
27天前
|
安全 Java 数据安全/隐私保护
如何配置 Java 安全管理器来避免访问控制异常
配置Java安全管理器以防止访问控制异常,需在启动JVM时通过 `-Djava.security.manager` 参数启用,并设置安全策略文件,定义权限规则,限制代码执行操作,确保应用安全。
|
30天前
|
Java BI 调度
Java Spring的定时任务的配置和使用
遵循上述步骤,你就可以在Spring应用中轻松地配置和使用定时任务,满足各种定时处理需求。
123 1
|
1月前
|
消息中间件 分布式计算 Java
大数据-73 Kafka 高级特性 稳定性-事务 相关配置 事务操作Java 幂等性 仅一次发送
大数据-73 Kafka 高级特性 稳定性-事务 相关配置 事务操作Java 幂等性 仅一次发送
30 2
|
1月前
|
分布式计算 资源调度 Hadoop
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
76 4
|
1月前
|
Java Shell Maven
Flink-11 Flink Java 3分钟上手 打包Flink 提交任务至服务器执行 JobSubmit Maven打包Ja配置 maven-shade-plugin
Flink-11 Flink Java 3分钟上手 打包Flink 提交任务至服务器执行 JobSubmit Maven打包Ja配置 maven-shade-plugin
103 4
|
1月前
|
消息中间件 Java 大数据
大数据-56 Kafka SpringBoot与Kafka 基础简单配置和使用 Java代码 POM文件
大数据-56 Kafka SpringBoot与Kafka 基础简单配置和使用 Java代码 POM文件
65 2
|
2月前
|
Oracle Java 关系型数据库
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
如果遇到"exec format error"问题,文章建议先检查Linux操作系统是32位还是64位,并确保安装了与系统匹配的JDK版本。如果系统是64位的,但出现了错误,可能是因为下载了错误的JDK版本。文章提供了一个链接,指向Oracle官网上的JDK 17 Linux版本下载页面,并附有截图说明。
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
|
1月前
|
负载均衡 算法 Java
java中nginx负载均衡配置
java中nginx负载均衡配置
38 0