DOS / Linux Shell 下运行Java时设置ClassPath的问题

本文详细介绍了在Linux和DOS环境下,如何通过脚本自动将多个.jar文件添加到类路径中,以便在Java环境中正确加载和使用这些库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考资料:http://unmi.cc/linux-unix-lib-classpath-shell

DOS:

@ECHO OFF
for %%F IN (lib\*.jar) do call :AddClassPath %%F
goto RunApp

:AddClassPath
  SET CLASSPATH=%CLASSPATH%;%1
goto :EOF

:RunApp
javac MainTest.java
java MainTest
pause

Linux:

#!/bin/sh

#PWD=`pwd`
#for i in lib/*;
#do CLASSPATH=$PWD/$i:"$CLASSPATH";
#done

CLASSPATH=`find lib -name *.jar|xargs|sed "s/ /:/g"`
export CLASSPATH=".:$CLASSPATH"

javac MainTest.java
java MainTest


#!/bin/bash ############################################################ # 参数定义 ############################################################ # 安装包所在路径 pack_dir=/iflytek/install # 应用安装路径 server_dir=/iflytek/server # Fastdfs配置文件路径 Fast_conf=/iflytek/conf # shell脚本路径 shell_dir=/iflytek/install/shell # 定义颜色变量以增强输出效果 RED='\033[0;31m' GREEN='\033[0;32m' NC='\033[0m' # No Color # 函数:显示进度信息 show_progress() { local message=$1 echo -e "${GREEN}=> ${message}${NC}" } # 函数:错误处理 handle_error() { local error_message=$1 echo -e "${RED}ERROR: ${error_message}${NC}" exit 1 } # 函数:创建必要目录 create_directories() { show_progress "正在创建所需目录..." mkdir -p /iflytek/{engine,conf,bak,server,data/zookeeperusr} /usr/java || handle_error "目录创建失败" show_progress "目录创建完成!" } # 函数:操作系统设置 configure_os() { show_progress "正在关闭防火墙和SELinux..." systemctl stop firewalld.service > /dev/null 2>&1 && systemctl disable firewalld.service > /dev/null 2>&1 || handle_error "防火墙关闭失败" setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config || handle_error "SELinux关闭失败" show_progress "正在调整系统限制..." ulimit -n 655360 && ulimit -u 655360 || handle_error "系统限制调整失败" echo '* soft noproc 655360' >> /etc/security/limits.conf echo '* hard noproc 655360' >> /etc/security/limits.conf echo '* soft nofile 655360' >> /etc/security/limits.conf echo '* hard nofile 655360' >> /etc/security/limits.conf echo 'vm.max_map_count=655360' >> /etc/sysctl.conf sysctl -p > /dev/null 2>&1 || handle_error "sysctl配置加载失败" show_progress "操作系统设置完成!" } # 函数:配置Java环境 configure_java() { show_progress "正在卸载旧版JDK并解压新版本..." rpm -e --nodeps `rpm -qa | grep -i jdk` > /dev/null 2>&1 || true tar zxf $pack_dir/jdk-8u144-linux-x64.tar.gz -C /usr/java/ > /dev/null 2>&1 || handle_error "JDK解压失败" show_progress "正在配置Java环境变量..." cat <<EOF >> /etc/profile export JAVA_HOME=/usr/java/jdk1.8.0_144 export JRE_HOME=\$JAVA_HOME/jre export PATH=\$PATH:\$JAVA_HOME/bin export CLASSPATH=.:\\\$JAVA_HOME/lib/dt.jar:\\\$JAVA_HOME/lib/tools.jar EOF source /etc/profile || handle_error "Java环境变量加载失败" show_progress "Java环境配置完成!" } # 函数:设置本地Yum源 configure_yum() { show_progress "正在配置本地Yum源..." mkdir -p /etc/yum.repos.d/bak && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak > /dev/null 2>&1 || handle_error "Yum源备份失败" mount -o loop $pack_dir//CentOS-7-x86_64-DVD-2009.iso /tmp > /dev/null 2>&1 || handle_error "ISO挂载失败" cp -a /tmp /iflytek/web/centos > /dev/null 2>&1 || handle_error "Yum源复制失败" umount /tmp > /dev/null 2>&1 || handle_error "ISO卸载失败" cp $pack_dir//shell/my-z-centos.repo /etc/yum.repos.d/ > /dev/null 2>&1 || handle_error "Yum源配置文件复制失败" yum clean all > /dev/null 2>&1 && yum makecache > /dev/null 2>&1 || handle_error "Yum缓存更新失败" show_progress "本地Yum源配置完成!" } # 函数:安装依赖包 install_dependencies() { show_progress "正在安装依赖包..." yum -y install openssl openssl-devel gcc* vim net-tools zip unzip wget gzip lrzsz dos2unix sysstat-11.7.3-1.x86_64 > /dev/null 2>&1 || handle_error "依赖包安装失败" show_progress "依赖包安装完成!" } # 函数:解压安装包 unzip_packages() { show_progress "正在解压安装包..." for i in /iflytek/server/*.zip; do unzip -o $i -d $server_dir > /dev/null 2>&1 || handle_error "文件解压失败" done chmod -R 775 /iflytek/ || handle_error "权限设置失败" mv $server_dir/*.zip $pack_dir// > /dev/null 2>&1 || handle_error "文件移动失败" show_progress "安装包解压完成!" } # 函数:配置主机名 configure_hostname() { show_progress "正在配置主机名..." ip=$(ip addr | grep 'state UP' -A2 | grep inet | egrep -v '(127.0.0.1|inet6|docker)' | awk '{print $2}' | tr -d "addr:" | head -n 1 | cut -d / -f1) hostname skynet > /etc/hosts || handle_error "主机名设置失败" echo "$ip skynet" >> /etc/hosts echo "HOSTNAME=skynet" >> /etc/sysconfig/network echo "skynet" >/etc/hostname show_progress "主机名配置完成!" } # 函数:验证配置 validate_configuration() { show_progress "正在验证配置..." java -version > /dev/null 2>&1 || handle_error "Java环境验证失败" grep "vm.max_map_count" /etc/sysctl.conf | tail -1 > /dev/null 2>&1 || handle_error "系统限制验证失败" cat /etc/security/limits.conf | grep -i "65536" > /dev/null 2>&1 || handle_error "文件限制验证失败" cat /etc/hosts | grep "skynet" > /dev/null 2>&1 || handle_error "主机名验证失败" show_progress "所有配置验证通过!" } # 主函数 main() { create_directories configure_os configure_java configure_yum install_dependencies unzip_packages configure_hostname validate_configuration show_progress "所有操作已完成!" } # 执行主函数 main
最新发布
06-15
#!/bin/bash ###############parameter #安装包所在路径 pack_dir=/iflytek/install #文件安装路径 install_dir=/iflytek/server #fastdfs配置文件所在路径 conf_dir=/iflytek/conf #shell脚本所在路径 sh_dir=/iflytek/install/shell #获取本机ip地址 ip=`ip addr | grep 'state UP' -A2 | grep inet | egrep -v '(127.0.0.1|inet6|docker)' | awk '{print $2}' | tr -d "addr:" | head -n 1 | cut -d / -f1` #主机名 HostName=skynet #服务器密码 Host_Passwd=iflytek #mysql密码 PASSWORD=123456 ###################################################################### # # ###################################################################### echo '0.创建所需目录' ##创建目录 mkdir -p /iflytek/{engine,conf,bak,server} mkdir -p /iflytek/data/zookeeper mkdir -p /usr/java/ ###################################################################### # # 1.操作系统设置 # ###################################################################### echo '1.操作系统设置' ##关闭防火墙 systemctl stop firewalld.service > /dev/null 2>&1 systemctl disable firewalld.service > /dev/null 2>&1 ##关闭selinux setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config ##系统设置 ulimit -n 655360 ulimit -u 655360 echo '* soft noproc 655360 ' >>/etc/security/limits.conf echo '* hard noproc 655360 ' >>/etc/security/limits.conf echo '* soft nofile 655360 ' >>/etc/security/limits.conf echo '* hard nofile 655360 ' >>/etc/security/limits.conf echo 'vm.max_map_count=655360' >>/etc/sysctl.conf sleep 1 sysctl -p >/dev/null 2>&1 #Hypercnn版本必须关闭服务器的大页面 #echo never > /sys/kernel/mm/transparent_hugepage/enabled #echo never > /sys/kernel/mm/transparent_hugepage/defrag ###################################################################### # # 2.配置java环境 # ###################################################################### echo "2.配置java环境" rpm -e --nodeps `rpm -qa|grep -i jdk` sleep 4 tar zxf $pack_dir/jdk-8u144-linux-x64.tar.gz -C /usr/java/ echo 'export JAVA_HOME=/usr/java/jdk1.8.0_144' >> /etc/profile echo 'export JRE_HOME=$JAVA_HOME/jre' >>/etc/profile echo 'export PATH=$PATH:$JAVA_HOME/bin' >>/etc/profile echo 'export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' >>/etc/profile sleep 2 source /etc/profile >/dev/null 2>&1 sleep 2 ###################################################################### # # 3.设置本地yum源 # ###################################################################### echo "3.设置本地yum源" mkdir -p /etc/yum.repos.d/bak mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak mkdir -p /iflytek/web sleep 2 mount -o loop $pack_dir/CentOS-7-x86_64-DVD-2009.iso /tmp >/dev/null 2>&1 sleep 2 cp -a /tmp /iflytek/web/centos sleep 2 umount /tmp >/dev/null 2>&1 ###################配置本地yun源 cp $shell/conf/my-z-centos.repo /etc/yum.repos.d/ ######################加载yum源 yum clean all > /dev/null 2>&1 yum makecache > /dev/null 2>&1 yum repolist > /dev/null 2>&1 #####################network yum #echo "http install " #yum -y install openssh-clients httpd #systemctl enable httpd #systemctl start httpd #ln -s /iflytek/web/centos /var/www/html/ ########################################package #yum-slve #cp /iflytek/shell/conf/my-c-centos.repo /etc/yum.repos.d/ #sleep 5 ###################################################################### # # 4.安装所需依赖包 # ###################################################################### #echo "4.安装所需依赖包" #yum -y install openssl openssl-devel gcc* &> /dev/null #已经安装开发工具执行 #yum -y install openssl openssl-devel expect gcc* vim net-tools.x86_64 zip unzip wget gzip lrzsz dos2unix sysstat-11.7.3-1.x86_64 >/dev/null 2>&1 ##解压安装包 echo '4.1 解压文件' for i in /iflytek/server/*.zip; do unzip -o $i -d /iflytek/server/ >/dev/null 2>&1 done chmod -R 775 /iflytek/ #解压部署包 for tar in $pack_dir/*.tar.gz; do tar -xf $tar -C $install_dir/; done chmod -R 775 /iflytek sleep 5 mv $install_dir/*.zip $pack_dir/ ###################################################################### # # 5.配置主机名 # ###################################################################### echo "5.配置主机名" hostname $HostName> /etc/hosts echo "$ip $HostName" >> /etc/hosts echo "HOSTNAME=$HostName" >> /etc/sysconfig/network echo "skynet" >/etc/hostname ###################################################################### # # 6.配置验证 # ###################################################################### echo "6.验证" echo "6.1java环境" java -version echo "6.2文件限制" grep "vm.max_map_count" /etc/sysctl.conf | tail -1 cat /etc/security/limits.conf | grep -i "65536" echo "6.3查看主机名" cat /etc/hosts 优化shell脚本
06-15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值