月度归档:2020年10月

Windows下如何查看某个端口被谁占用

1、 开始—->运行—->cmd,或者是window+R组合键,调出命令窗口;

2、输入命令:netstat -ano,列出所有端口的情况。在列表中我们观察被占用的端口,比如是1224,首先找到它;

3、查看被占用端口对应的PID,输入命令:netstat -aon|findstr “8081”,回车,记下最后一位数字,即PID,这里是9088;

4、 继续输入tasklist|findstr “9088”,回车,查看是哪个进程或者程序占用了8081端口,结果是:node.exe 或者是我们打开任务管理器,切换到进程选项卡,在PID一列查看9088对应的进程是谁,如果看不到PID这一列

javamail彻底解决中文乱码的方法

用javamail以来,一直被中文乱码困扰,虽然90%的邮件都正常,但是剩下10%的乱码确实让人心里疙疙瘩瘩。

通过代码subject = MimeUtility.decodeText(mimeMessage.getSubject());subject = MimeUtility.decodeText(subject);
获取的subject大部分都是正确的,但偶尔出现乱码,网上给出解决办法,
subject = new String(subject.getBytes(“ISO8859_1”), “GBK”),的确解决了乱码问题,但是以前正确的就变成了乱码。能不能只把乱码的进行转换,要想转换的话就必须知道是不是乱码,只有是乱码的情况下我们需要尝试用GBK转换。
那么如何知道是否有乱码呢?要是能知道subject的字符集就好了,但是这条路是行不通的,至少并不是完美的解决办法。
那么如何呢?
我以为只要有中文就可能存在乱码,那么如果subject中没有中文,就可以怀疑他是乱码,我们就尝试进行GBK转换
String regEx = “[\u4e00-\u9fa5]”;
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(subject);
if(!m.find()){
    subject = new String(subject.getBytes(“ISO8859_1”), “GBK”);
    subject = MimeUtility.decodeText(subject);
}
可能影响效率,但是确实管用。

Tomcat通过setenv.bat指定jdk和jre(相对路径)

1.在Tomcat的bin目录下,创建一个名为setenv.bat的文件。

2.编辑setenv.bat,

@echo off
rem set tmp variables SERVICE_ROOT

set BIN_DIR=%cd%
SET TITLE=%BIN_DIR%--"SERVICE NAME"
set curr=%cd%
cd ../..
set SERVICE_ROOT=%cd%
cd %BIN_DIR%

rem set JRE AND JDK
if exist "%SERVICE_ROOT%JDK8.0jrebinjava.exe" set "JRE_HOME=%SERVICE_ROOT%JDK8.0jre"
if exist "%SERVICE_ROOT%JDK8.0jrebinjava.exe" set "JAVA_HOME=%SERVICE_ROOT%JDK8.0jre"

set Path=%JRE_HOME%bin;%JAVA_HOME%bin;%Path%

ECHO %SERVICE_ROOT%
ECHO %JAVA_HOME%
ECHO %JRE_HOME%