这是一个jar包冲突引起的Java程序错误,而且是runtime的错误,编译的时候不出错,一运行起来就挂。
综合
[原创] 在IntelliJ IDEA中使用插件查看Maven conflict
如果Maven引入的jar包有冲突,可以使用IntelliJ IDEA的Maven Helper插件来帮助分析。
下面以IntelliJ IDEA 15.0.3为例,说明如何安装及使用这个插件。
[原创] 在Github上添加SSH key
如果你在Github上有一个项目,为了能让这个项目可以在多台计算机上开发,需要把目标计算机的SSH key添加到你的Github账户中,否则你以SSH方式git clone时会提示无权限,例如你可以试试:
git clone git@github.com:codelast/raspberry-pi.git
会输出类似于这样的错误信息:
Permission denied (publickey).
文章来源:http://www.codelast.com/
所以下一步就要在Github中添加SSH key,让你可以在目标计算机上进行开发以及代码提交。
其实Github上已经有完整的教程了,只不过我记性不好,每次都要去翻Github教程,所以特地写下来。
✔ 检查SSH key是否已经存在
检查文件 ~/.ssh/id_rsa.pub 是否存在,如果存在,就不用生成一个新的SSH key了,直接跳到下面的第3步。
如果该文件存在,但你不想使用它的话,那么就按下面的做法另外生成一个文件也可以(例如 ~/.ssh/id_rsa_github.pub)。
文章来源:http://www.codelast.com/
✔ 生成一个新的SSH key
如果第1步中的SSH key不存在,则需要生成:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
其中,your_email@example.com要修改成你的邮箱地址。
回车后输出如下:
… Read MoreGenerating public/private rsa key pair.
[原创] 让ThreadPoolExecutor的workQueue占满时自动阻塞submit()方法
使用Java的ThreadPoolExecutor可以并发地执行一些任务,它的基本用法是:
(1)创建一个 ThreadPoolExecutor 对象
ThreadPoolExecutor executor = new ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(workQueueSize));
[原创] 使用ThreadPoolExecutor产生的 OutOfMemoryError: unable to create new native thread 错误
最近,在使用Java的ThreadPoolExecutor来实现一个并发功能的时候,发现程序刚执行起来不久,就提示了错误:
OutOfMemoryError: unable to create new native thread
并且服务器立即陷入类似于“无响应”的状态,无法用Ctrl+C结束掉我的Java程序,按Ctrl+C的时候,命令行只是不断地打印出类似于下面的消息:
Exception java.lang.OutOfMemoryError occurred dispatching signal SIGINT to handler- the VM may need to be forcibly terminated
[原创] gnuplot调教记
gnuplot是命令行绘图的极佳选择之一。用它画出一副简单的图极其容易,但是对画出的图进行微调却很令人抓狂,这主要“得益”于gnuplot超级强大的功能,以及无穷无尽纷繁复杂的说明文档,通常让人没时间去细细研究。
如果你经常有gnuplot的使用需求,那么可以仔细研读一下它的文档,否则,还是像我一样,现学现用吧。
我折腾了一天多时间,把我想要的一副图给画出来了,里面涉及到了很多图像的微调过程,有些解决方案很难搜到,但我运气稍好,终究还是弄出来了,在此,作为一个使用案例来分析一下。因此,本文并不是gnuplot的使用教程,而是用gnuplot绘图时,对某些奇怪问题的解决办法的分享。
本文基于gnuplot版本:4.4,系统:RHEL 5.3
[原创] InputStream读取多次导致的Unexpected end of ZLIB input stream问题
有一次,在一个程序中,对jar包里的一个文本文件使用如下方式来读取:
InputStream fin = getClass().getResourceAsStream("/file_to_read.txt");
然后在后面的代码中,对 fin 进行读取:
BufferedReader reader = new BufferedReader(new InputStreamReader(fin));
for (String line = reader.readLine(); line != null; line = reader.readLine()) {
//TODO: your code here
}
读一次是没有问题的,但如果对同一个InputStream对象读取两次,就会报类似于下面的错误:
… Read MoreError: java.io.EOFException: Unexpected end of ZLIB input streamat java.util.zip.ZipFile$1.fill(ZipFile.java:239)at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:141)at java.io.FilterInputStream.read(FilterInputStream.java:116)at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
[原创] 去除流氓插件“微度标签页”内置的“亿起发”返利链接跳转
写这篇文章实在是因为受不了“微度标签页”这个流氓插件内置的“亿起发”返利链接跳转,不得不愤怒地写此教程告诉大家如何去除它们的流氓行径。
注意:本文的方法无法防止流氓插件“微度标签页”的全部流氓行为——因为“微度”一旦升级,你修改过的本地插件数据可能就会被覆盖掉。所以,最好的方法就是:卸载它!大家可以换用Speed Dial 2这样的良心插件(云同步功能需要支付$2.99,我觉得完全可以接受,至少它一点流氓行径也没有)。
如果你非要自虐,继续使用“微度标签页”(我已经卸载了,改用Speed Dial 2),那么本文可以在一定程度上帮你去除其强制跳转的恶心行为,请继续往下看。
[原创] “不需要升级,您的WordPress数据库已经是最新的了!”导致进不了WordPress管理后台的问题
今天突然发现,进不去WordPress后台管理页面了,登录之后,屏幕上就两句话:
不需要升级您的WordPress数据库已经是最新的了!
于是问Google,查到这个问题是由于使用了object-cache缓存插件导致的问题,于是解决了,如下。
[原创] Java动态添加一个目录到classpath中
通常我们写程序,会用到一些配置文件,这些文件与程序在同一个父目录下,配置文件可能放在config之类的目录下,程序中会使用这些配置文件。
我遇到了这么件事情:因为一个特殊需求,需要把配置文件放到jar包中,最终部署出去的只能是一个jar包(所有东西都在jar包里,包括程序和所需的资源),然后在程序中使用 getClass().getResourceAsStream(文件在jar包中的路径) 的方式来读取配置文件。这也倒没什么不爽的,但是在单元测试中怎么办?
[原创]一些未归类的命令、操作方法或问题总结(5)
下面是一些未归类的命令及操作方法,专门记在此文中,以便将来查询。由于文章较长,请用Ctrl+F查询关键字来定位到你需要的内容。
[原创](翻译)什么是Java的永久代(PermGen)内存泄漏
本文是我对这篇文章的翻译:What is a PermGen leak? 为了便于阅读,我将原文附于此处,翻译穿插在其中。此外,为了防止原链接在未来某一天失效后,文中的图片再也看不到的问题,我将原文中的图片也保存到了本站的服务器上,我不知道原作者是否允许这样做,但我翻译本文仅在于传播知识的目的,在此向原作者表示深深的感谢:感谢你们的分享。
[原创]用LaTeX for WordPress插件在WordPress中写数学公式
WordPress是地球上使用最广泛的网站建立工具(或内容管理系统,CMS,Content Management System),如果你想建一个自己的个人网站,用WordPress非常方便。
在WordPress中写数学公式有N种方法,以前我一直是用MathType写好公式后,屏幕截图,上传图片到WordPress服务器,然后在文章中引用该图片。这样做的好处就是兼容性好,无论在任何软件(例如RSS阅读器)中都可以正确显示,任何复杂的内容都可以在公式中完美显示(包括中文),还可以给公式加版权水印;当然坏处也非常明显:整个操作过程超级麻烦(尤其是要修改公式的时候)。