1. 加载资源文件
一般加载资源文件可以使用如下方法
1 | ClassLoader.getSystemResourceAsStream("xxx.properties") |
但是注意,第一种方法是有缺陷的,因为不同的类加载器会造成读取不到文件的情况,典型的就是tomcat
的类加载读取不到应用路径下的文件
2. 查看 java 启动变量
1 | System.getenv();//系统级别环境变量,可以在~/.bash_profile中配置 |
3. InetAddress.getLocalHost() java.net.UnknownHostException 异常
问题原因是在系统的 /etc/Hostname 中配置了“zw_65_43” 作为主机名,而在/etc/hosts 文件中没有 相应的“zw_65_43”。简单的解决办法是
对应关系配好就可以,甚至删除/etc/Hostname 这个文件也可以。
深层的原因: 在大多数 Linux 操作系统中,都是以/etc/hosts 中的配置查找主机名的,但是 Detian based system 用/etc/Hostname 文件中的配置做主机名。 结论:
- 设置本机名称:hostname mName xxx 最好不是写 IP 地址的形式,若写则必须是本机的完全 IP 形式(不要只写一半)
- 在/etc/hosts 里加一行 本机 IP mName
- 用 InetAddress.getLocalHost().getHostAddress()测试一下结果是否是与本机 IP 一致
也可以在shell
中执行echo $HOSTNAME
查看主机名,通过ping $HOSTNAME
查看是否问题已经解决了
4. logback 日志
logback 日志在开始阶段会输出一些自身的日志,通过配置NopStatusListener
即可以清除
1 |
|
5. tomcat
使用java
启动变量作为端口
tomcat 默认会加载bin
目录下新建setenv.sh
作为启动环境,若无则新建即可
1 | !/bin/sh |
tomcat
的端口配置文件conf/server.xml
中,将默认端口替换为如下
1 | <Service name="Catalina"> |
6. 控制台console
乱码
java
启动参数添加 -Dfile.encoding=utf-8