Archive

Posts Tagged ‘Java’

Windows/Linux 编译和配置Tomcat Native

September 20th, 2017 No comments

Tomcat Native 是利用 APR 来提升Tomcat性能的本地API。
Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。

WIndows环境下安装Tomcat Native只需要到
http://tomcat.apache.org/download-native.cgi
下载Tomcat Native Connector的window版本,下载完毕后将
tcnative-1.dll (含32位和64位)
复制到tomcat目录下的bin目录即可使用。

Linux需要自行编译Tomcat Native Connector,具体步骤如下
Read more…

Categories: 系统管理, 零敲碎打 Tags: ,

[Linux]Java获取本机网卡IP地址

December 1st, 2016 No comments

应用程序服务器由Windows环境整体迁移到Linux环境,出现了不能获取本机IP地址的问题
原因是下面一段JAVA代码在Linux下直接返回127.0.0.1。Windows下有效的InetAddress貌似在linux下不起作用。

1
2
3
4
5
6
7
8
9
10
11
12
public static String getLocalIP() {
    String ip = "";
        try {
            InetAddress address = InetAddress.getLocalHost();
            if(address != null) {
                ip = address.getHostAddress();
            }
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    return ip;
}

原因在于Java使用的JNI代码调用的是Linux中的gethostname内核函数
这个函数在Linux主机没有绑定IP的情况下根据Host文件定义返回默认的localhost或者127.0.0.1。
Read more…

Categories: 系统管理, 零敲碎打 Tags: , ,

JSch连接SSH问题Exception:Algorithm negotiation fail

August 16th, 2016 No comments

使用Jenkins配置完远程SSH服务器,发生无法连接问题,查看Log后找到

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[SSH] Exception:Algorithm negotiation fail
    com.jcraft.jsch.JSchException: Algorithm negotiation fail
    at com.jcraft.jsch.Session.receive_kexinit(Session.java:520)
    at com.jcraft.jsch.Session.connect(Session.java:286)
    at com.jcraft.jsch.Session.connect(Session.java:150)
    at org.jvnet.hudson.plugins.SSHSite.createSession(SSHSite.java:141)
    at org.jvnet.hudson.plugins.SSHSite.executeCommand(SSHSite.java:151)
    at org.jvnet.hudson.plugins.SSHBuildWrapper.executePreBuildScript(SSHBuildWrapper.java:75)
    at org.jvnet.hudson.plugins.SSHBuildWrapper.setUp(SSHBuildWrapper.java:59)
    at hudson.model.Build$BuildExecution.doRun(Build.java:154)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:533)
    at hudson.model.Run.execute(Run.java:1754)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:89)
    at hudson.model.Executor.run(Executor.java:240)
Finished: FAILURE

Read more…

Categories: 系统管理 Tags: , ,

MAC OS编译Android版Linphone SDK和APP

October 28th, 2015 No comments

之前在MAC OS折腾编译iOS版linphone-iphone SDK和APP成功,下一步继续编译Android版的linphone-android。Android版的文档更简单,一个README.TXT就结束,然后各种调查。

简单说明一下linphone
Linphone is an open source SIP Phone, available on mobile and desktop environments (iOS, Android, Windows Phone 8, Linux, Windows Desktop, MAC OSX) and on web browsers.
Linphone has inside a separation between the user interfaces and the core engine, allowing to create various kinds of user interface on top of the same functionalities.

Read more…

Categories: 移动互联, 语言编程 Tags: ,

Android强制使用WebView不调用系统或外部浏览器

October 21st, 2015 No comments

HTML5 HYBIRD混合APP需要在H5页面中打开第三方网站(例如:百度),android默认不在当前WebView中打开,反而会调用系统或外部浏览器,解决办法是自己重写WebViewClient,覆盖shouldOverrideUrlLoading并让其返回True。

实现代码

1
2
3
4
5
6
7
8
mWebView.setWebViewClient(new WebViewClient() {
    public boolean shouldOverrideUrlLoading(WebView view, String url)
      {
            // webview自己加载URL,让后通知系统不需要HandleURL
            view.loadUrl(url);
            return true;
      }
});

Read more…

Categories: 语言编程, 零敲碎打 Tags: ,

Android开发之使用Ant命令行编译和APK签名

July 8th, 2013 No comments

最近在做Android开发时,需要引用第三方的代码进项目,一般情况下,直接在Eclipse下设置需要导入的代码的编译输出为library即可,但是很多代码在Eclipse下编译会出现很多莫名其妙的错误。因而只能使用命令行方式对代码进行编译。具体方法如下:

1.安装编译用的Java,安装Android Platform-tools,安装Ant,设置好各种环境变量。部分Linux下Ant已经默认集成,Windows下需要自行安装。
2.使用Android工具更新代码的编译配置。
3.使用Ant工具进行编译,可编译Debug版和Release版本。
4.生成代码签名用的私钥,并对APK进行签名。
5.对APK文件进行对齐,对大文件APK有不错的效果。
Read more…

Categories: 移动互联, 语言编程 Tags: , , , ,

求二维数组的全排列组合,二位数组的自乘积问题

June 14th, 2012 3 comments

CG在ETP基地的培训也有一段时间了,这期间也有几次考试,下面将要分享的是最近一次笔试的考试题目,该题算是JAVA考试的附加题,要求也很简单,下面是原题

二维数组的长度和初始值均由输入确定,如何求出此数组的全排列组合,
即:int a[X][X] = {{X,X,X},…}如下
int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}}
或者是 int a[4][4] = {{1,2,3,4},{4,5,6,7},{7,8,9,10}}
计算a[3][3]的结果如下:
147,148,149
157,158,159
167,168,169
247,248,249
…………

Read more…

Categories: 算法研究 Tags: ,