第一杯咖啡----在Debian 上安装Java环境
blackdown 的jdk 总是比sun 慢了一拍,针对debian包更新太慢,非官方的java-package的生成的.deb不尽人意,一些常用的命令没有加入到path,本文主要参考debian java faq
1、获取jdk.
从sun的官方网站下载最新的jdk 1.5 update2, http://java.sun.com。注意,要下载解压版本。
# su root
切换到 超级用户(也可以用sudo 来取得超级用户权限),进入下载目录
# chmod a+x jdk-1_5_0_02-linux-i586.bin
# ./jdk-1_5_0_02-linux-i586.bin
同意协议.会得到一个jdk-1.5.0目录。
#mkdir /usr/lib/j2se
#mv jdk-1.5.0 /usr/lib/j2se/5.0
#cd /usr/lib
#ln -s /usr/lib/j2se/5.0 java
编辑/etc/mailcap文件,将其中的java web start设置移至文件顶部的,不然在update-mime,自定义的设置会被冲掉
# ----- User Section Begins ----- #
# ----- User Section Ends ----- #
改成如下:
# ----- User Section Begins ----- #
# Java Web Start
application/x-java-jnlp-file; /usr/lib/java/jre/bin/javaws %s
# ----- User Section Ends ----- #
2、解决系统java 依赖关系.
基本上已经安装好了。。。下面解决系统的依赖性。。。
#apt-get install java-common
这时在/usr/share/doc/java-common有debian java的详细文档:
debian-java-faq
debian-java-policy
#cd /usr/share/doc/java-common/dummy-packages/
里面有5 个文件:
java1-runtime-dummy.control
java2-compiler-dummy.control
java2-runtime-dummy.control
java-compiler-dummy.control
java-virtual-machine-dummy.control
首先请确定已经安装好了equivs
# equivs-build java1-runtime-dummy.control
# equivs-build java2-compiler-dummy.control
# equivs-build
java2-runtime-dummy.control
# equivs-build
java-compiler-dummy.control
# equivs-build
java-virtual-machine-dummy.control
生成5个。deb包。。。
#dpkg -i *.deb
#cp /usr/lib/java/jre/plugin/desktop/sun_java.desktop /usr/share/control-center-2.0/capplets/
编辑/usr/share/control-center-2.0/capplets/sun_java.desktop
修改java路径:
[Desktop Entry]
Name=Java
Comment=Java Control Panel
Exec=/usr/lib/java/bin/ControlPanel
Icon=/usr/lib/java/jre/plugin/desktop/sun_java.png
Terminal=0
Type=Application
Categories=Application;Settings;X-Sun-Supported;X-Red-Hat-Base;
这样就可以通过菜单启动java 控制台了。。。
3、使用alternatives将所有java 命令,man ,和plugin.
最后,为jdk的bin下的命令建立链接,为mozilla安装插件,新建一个shell文件,内容如下:
#!/bin/bash
JDK_HOME=/usr/lib/java
for i in $JDK_HOME/bin/*; do
altname=`basename $i`
echo "Processing $altname..."
echo ""
if [ -x "$i" -a -e "$JDK_HOME/man/man1/${altname}.1" ]
then
update-alternatives --verbose --install /usr/bin/$altname $altname $i 500
--slave /usr/share/man/man1/${altname}.1 ${altname}.1 $JDK_HOME/man/man1/${altname}.1
else
update-alternatives --verbose --install /usr/bin/$altname $altname $i 500
fi
done
update-alternatives --verbose --install /usr/lib/mozilla/plugins/libjavaplugin.so libjavaplugin.so $JDK_HOME/jre/plugin/i386/ns7/libjavaplugin_oji.so 500
#update-alternatives --install /usr/share/gnome/vfolders/Settings/sun-java.desktop sun-java.desktop /usr/lib/java/jre/plugin/desktop/sun_java.desktop 500
#sh your_shell
测试:
#java -version
会输出:
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
Java HotSpot(TM) Client VM (build 1.5.0-b64, mixed mode, sharing)
#man java
就可以查java的使用方法。。。
编写第一个java,和java打个招呼吧。
#文件名:你好.java
class 你好
{
public static void main(String[] args)
{
System.out.println("你好,java 世界!");
}
}
编译程序:#javac 你好.java
运行程序:#java 你好
屏蔽输出:
你好,java 世界!中文问题,老话题了,改字体路径。
参见:
http://www.linuxsir.org/bbs/showthread.php?s=&threadid=124319&highlight=%BF%F2%BF%F2
(原文网址:http://blog.chinaunix.com/opera/showart.php?blogid=1096&id=2501)
附删除java环境链接的脚本:
#!/bin/bash
JDK_HOME=/usr/lib/java
for i in $JDK_HOME/bin/*; do
altname=`basename $i`
echo "Processing $altname..."
echo ""
if [ -x "$i" -a -e "$JDK_HOME/man/man1/${altname}.1" ]
then
update-alternatives --verbose --remove-all $altname
update-alternatives --verbose --remove-all ${altname}.1
else
update-alternatives --verbose --remove-all $altname
fi
done
update-alternatives --verbose --remove-all libjavaplugin_oji.so
#update-alternatives --verbose --remove-all sun-java.desktop
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)