在linux下用 java 输出 InetAddress.getLocalHost();的结果是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在linux下用 java 输出 InetAddress.getLocalHost();的结果是啥?相关的知识,希望对你有一定的参考价值。

在windows下InetAddress.getLocalHost();输出的结果是:dell-PC/192.168.1.145;也就是本机名词 + ”/“ + HostAddress;
那么在linux下输出的结果是什么呢?中间的那个”/“会不会变成”\“呢 ? 如果是那样就麻烦了,希望有前辈指点一下,谢谢了
还有就是在使用 InetAddress.getLocalHost();的时候会有什么常见的异常,以及一些要注意的地方; 谢谢

InetAddress.getLocalHost()在Linux下其实是非常不给力的……你可以试一下,虽然这个方法在Windows下可以正常工作,但是在Linux下只会返回127.0.0.1……
因为该方法在Linux下的具体实现仅仅是读取/etc/hosts中的配置内容,所以在Linux下不要尝试用这个方法来获得本机的IP地址。如果真要获取的话,可以参考这个网页:
http://www.javaeye.com/topic/169889
或者是这个:
http://wjason.javaeye.com/blog/206320
参考技术A 做任务来了! 参考技术B 不会变,都是正斜杠

想请大神写一个在linux环境下用shell脚本控制jar的启动和停止,类似于一个后台服务那种的。

本人刚刚接触这个,很多不懂,希望能详细指点一下,谢谢!!

得看你的程序是什么样子 一般脚本中主要需要定义好你的启动用户 java的环境变量 jar需要调用的类和库 然后用case语句 来通过判断脚本后面键入的值 如start stop等一类的内容 来执行或结束jar程序 参考技术A /etc/init.d 目录下都是这种脚本。照着那些启动关闭脚本自己改改吧。 参考技术B 需求不够具体,如果仅仅是java可以控制的启停,那就很简单的,做为后台服务也可以。70分还是很不错的,可以加我QQ 66046916 。我可以给你写完 你再把分给我哈~~ 参考技术C 一下是启动脚本

#!/bin/sh
#-------------------------------------------------------------------------------------------------------------
#该脚本的使用方式为-->[sh startup.sh]
#该脚本可在服务器上的任意目录下执行,不会影响到日志的输出位置等
#-------------------------------------------------------------------------------------------------------------
#JAVA_HOME="/usr/java/jdk1.6.0_31"
JAVA_OPTS="-Duser.timezone=GMT+8 -server -Xms2048m -Xmx2048m -Xloggc:/app/code/CucPayTradePortalLog/gc.log"
APP_LOG=/app/code/CucPayTradePortalLog
APP_HOME=/app/code/CucPayTradePortal
APP_MAIN=com.cucpay.tradeportal.MainApp
CLASSPATH=$APP_HOME/classes
for tradePortalJar in "$APP_HOME"/lib/*.jar;
do
CLASSPATH="$CLASSPATH":"$tradePortalJar"
done
tradePortalPID=0
getTradeProtalPID()
javaps=`$JAVA_HOME/bin/jps -l | grep $APP_MAIN`
if [ -n "$javaps" ]; then
tradePortalPID=`echo $javaps | awk 'print $1'`
else
tradePortalPID=0
fi

startup()
getTradeProtalPID
echo "================================================================================================================"
if [ $tradePortalPID -ne 0 ]; then
echo "$APP_MAIN already started(PID=$tradePortalPID)"
echo "================================================================================================================"
else
echo -n "Starting $APP_MAIN"
nohup $JAVA_HOME/bin/java $JAVA_OPTS -classpath $CLASSPATH $APP_MAIN > $APP_LOG/nohup.log &
getTradeProtalPID
if [ $tradePortalPID -ne 0 ]; then
echo "(PID=$tradePortalPID)...[Success]"
echo "================================================================================================================"
else
echo "[Failed]"
echo "================================================================================================================"
fi
fi

startup
参考技术D

希望对你有用~~~


祝你好运~~~

望采纳~~~

以上是关于在linux下用 java 输出 InetAddress.getLocalHost();的结果是啥?的主要内容,如果未能解决你的问题,请参考以下文章

在linux(CentOS) 下用tomcat部署java web项目

Linux下用Java获取本机IP

怎么在linux下用tomcat部署java web项目?

在不重启linux的情况下用systemd启动nacos

方法:Linux 下用JAVA获取CPU内存磁盘的系统资源信息

在 Linux 下用 CMAKE 编译安装 OpenCV 3.2.0