Articles of Java的

如何在Java上支持IPv4和IPv6

我们的一个Java程序启动时,它只能监听IPv6(8080) 例如 # netstat -ntpl Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN – tcp6 0 0 :::8080 :::* LISTEN – tcp6 0 0 :::22 :::* LISTEN – 问题是不能从外部访问(localhost除外),解决这个问题,我有这个手动添加 -Djava.net.preferIPv4Stack=true 但是这使得这个程序只能用于IPv4networking。 是否有可能像上面的sshd一样,都支持IPv4和IPv6?

在Linux上守护Java应用程序的最佳方式

虽然我发现这个问题在SW上回答了几次,但是我没有find最后的答案,最好的办法是什么。 我不打算使用任何外部包装,因为我发现他们启动java进程下一个很好的水平低于自己,这可能会降低性能,所以似乎只剩下壳方法。 我到目前为止发现了3种不同的shell方法: 启动 – 停止守护 RedHat守护进程的init.d函数 nohup开始后不准 你正在使用什么,并可以推荐为最可靠的方法? 谢谢。

如何使用命令行在Linux下使用Java构buildOpenCV(要在MapReduce中使用它)

最近我正在为我的gradle作品尝试OpenCV。 我在Windows环境下取得了一些成功。 而且,由于OpenCV的Windows包含了预构build的库,所以我不必担心如何构build它们。 但是因为这个项目是假设在CentOS上作为每个节点的主机操作系统运行,所以我必须知道如何在Linux环境下正确编译和运行这些库。 我已经用VirtualBox设置了一个虚拟机,并安装了Ubuntu 13.04。 但到目前为止,我仍然无法find一种方法来调整CMakeList的设置,使Java成为构build目标。 (一个jar子和一个本地库,所以我可以在MapReduce程序中导入和使用它们)以下是OpenCV的桌面Java官方教程 http://docs.opencv.org/doc/tutorials/introduction/desktop_java/java_dev_intro.html 关于编译的部分非常简短。 所以我还是不太明白。 是因为我错过了Java的一些依赖吗? 我已经安装了JVM(Jre-7u7)。 或者是因为我没有正确configurationCMakeList.txt? 这是我迄今为止所做的事情,除了这是一个完整的干净的Ubuntu 安装vim 安装了g ++ 安装cmake 安装了cmake-curses-gui 安装了java7的JVM 下载适用于Linux的OpenCV软件包 目标环境是CentOS作为每个节点的主机操作系统,该项目是一个MapReduce程序。 提前致谢。

在64位Linux服务器上运行64位JVM的好处/缺点?

我们在64位Linux 2.6服务器上运行32位Sun Java 5 JVM,但显然这将每个进程的最大内存限制为2GB。 所以有人build议我们升级到64位的JVM来消除这个限制。 我们目前在服务器上运行多个JVM(Tomcat实例)以保持2GB的限制,但为了简化部署,我们希望整合它们。 如果你已经这样做了,你能分享一下你的经验吗? 你在运行64位的JVM吗? 你会build议留在Java 5,还是可以同时移动到Java 6 和 64位? 我们是否应该期望性能问题,无论好还是坏? 有什么特别的地方应该关注我们的回归testing吗? 感谢您的任何提示!

在Linux下查找java进程的pid

你好我在Java程序中使用MPJ库为Pagerankalgorithm。 我编译它 javac -cp .:$MPJ_HOME/lib/mpj.jar MpiPageRank.java 并经过 mpjrun.sh -np 2 MpiPageRank 其中-np是进程数 现在我必须find它的PID ps -ef|grep java 喜欢 mpjrun.sh -np 2 MpiPageRank & sleep 2 ps -ef | grep java 我明白了 pnewaska 27866 27837 99 21:28 pts/45 00:00:09 java -cp /u/pnewaska/mpj-v0_38/lib/smpdev.jar:/u/pnewaska/mpj-v0_38/lib/xdev.jar:/u/pnewaska/mpj-v0_38/lib/mpjbuf.jar:/u/pnewaska/mpj-v0_38/lib/loader2.jar:/u/pnewaska/mpj-v0_38/lib/starter.jar:/u/pnewaska/mpj-v0_38/lib/mpiExp.jar runtime.starter.MulticoreStarter /nfs/nfs1/home/pnewaska/DistributedSystems/Project3 10 smpdev useLocalLoader EMPTY MpiPageRank -i input.500k0 -n 10 -o 现在我只想从1个linux MpiPageRank中提取MpiPageRank来获得它的pid,即27866 。 […]

在Linux上安装Java EE SDK的问题

我在我的VPS上安装了Java 6 JRE,但是我无法使EE SDK安装甚至运行。 root@vps [/usr/java]# java -version java version "1.6.0_18" Java(TM) SE Runtime Environment (build 1.6.0_18-b07) Java HotSpot(TM) Client VM (build 16.0-b13, mixed mode) 但是,当我尝试运行java_ee_sdk-6-unix.sh : ./ ../ java_ee_sdk-6-unix.sh* jre1.6.0_18/ jre.bin* root@vps [/usr/java]# ./java_ee_sdk-6-unix.sh Could not locate a suitable jar utility. Please ensure that you have Java 6 or newer installed on your system […]

在linux中添加classpath

export CLASSPATH =。; ../ somejar.jar; ../ mysql-connector-java-5.1.6-bin.jar java -Xmx500m folder.subfolder ../ dit1 / some.xml cd .. 是上面的语句,用于将类path设置为在Linux中已经存在的类path是否正确

打开的文件太多,但是lsof显示打开文件的合法数量

我的Java程序失败了 Caused by: java.io.IOException: Too many open files at java.io.UnixFileSystem.createFileExclusively(Native Method) at java.io.File.createNewFile(File.java:883)… 这里是/etc/security/limits.conf中的关键代码。 他们为用户设置最大文件为500k: root soft nofile 500000 root hard nofile 500000 * soft nofile 500000 * hard nofile 500000 我运行lsof来统计打开的文件数目 – 全局和jvm进程。 我在/proc/sys/fs检查了计数器。 一切似乎都没问题 我的进程只有4301个文件打开,限制为500k: :~# lsof | wc -l 5526 :~# lsof -uusername | wc -l 4301 :~# cat /proc/sys/fs/file-max 744363 :~# […]

等到tomcat完成启动

我有一个脚本,需要运行后,tomcat完成启动,并准备开始部署应用程序。 我正在使用$TOMCAT_HOME/bin/startup.sh ,它立即返回。 我如何等待tomcat完成启动?

在我的Swing GUI中embeddedvideo的简单方法

我一直在寻找一种将videoembedded到Java Swing GUI中的简单方法。 我追风吗? 理想情况下,我喜欢有这样的东西: VideoPlayer video = new VideoPlayer("filename"); frame.getContentPane().add(video); video.play(); 我在寻找不存在的东西吗? 我主要针对Linux进行开发,但考虑到Windows,因此我可能会尝试在未来使应用程序跨平台。 附加信息: 我之前看过JMF,在实际显示和播放video之前所需的代码量并不令人满意。 我可能会再次访问它。 我想到了一个使用VLC播放video的embedded式浏览器,但又不是最简单的事情。 我完全控制了要播放的video的格式。 它们的数量是固定的,如果需要的话可以重新编码。