Articles of Java的

JAVA:如何创buildhttp url连接select使用的ip地址

我有我的多个网卡上configuration公共IP地址池。 在我的LINUX机器上运行的JAVA项目中,我需要从池中select一个特定的IP地址,并使用该IP创build一个HttpURLConnecion。 另外,我会在游泳池上循环,每次使用不同的ip。 在目前阶段,我无法使用java.net库find解决scheme。 我宁愿看Apache的HttpClient。 在下面的链接http://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html ,据说这样的库可以支持我正在寻找的function。 关于这个的讨论可以在使用Apache HttpClient定义源IP地址中find。 实际上,贴出的post似乎并不确定,因为用户的体验与所描述的库的使用形成了鲜明的对比。 因此,我不认为社区真的成功解决了这个问题。 事实上,在这个问题上可以find几个重复的问题/答案,但似乎没有一个详细分析这个问题。 而且,这个问题并没有面对java.net库的使用(就像我的项目一样)。 目前,我有一个可能的select是调用一些LINUX系统命令(来自java)来切换用于当前连接的NIC。 不过,我还没弄明白。 因此,如果有解决这个问题的积极经验的用户能够给我一个解决scheme/想法/方法,我将不胜感激。 提前致谢, 马塞罗 更新: 我目前已经实现了这个testing代码。 它给了我正确的状态代码(200)。 但是,它需要使用多个IP地址进行testing。 public class test { public static void main(String[] args) { final String authUser = "admin"; final String authPassword = "password"; Authenticator.setDefault( new Authenticator() { public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication( authUser, authPassword.toCharArray()); […]

如何真正释放Linux中的巨大页面以供新进程使用?

真的找不到这个..希望有人可以帮助。 我正在打造一个100GB的Java堆作为大数据caching。 为了避免与文件系统caching之类的冲突,并且因为它在一般情况下performance更好,我将在大页面中分配它。 我保留了51,200 x 2MB的大页面,一切都很顺利。 然而,当我终止进程然后重新启动时,看起来Linux将这些页面中的一部分留作“rsvd”。 # less /proc/meminfo | grep Hug AnonHugePages: 0 kB HugePages_Total: 52000 HugePages_Free: 50952 HugePages_Rsvd: 1634 HugePages_Surp: 0 Hugepagesize: 2048 kB 据我所知,我没有任何其他系统configuration为请求或保留这些页面。 Linux为我提供了一种方法,让我看看是什么保留了那些保留的和/或使该保留无效的? 从我发现的一切谷歌他们并没有被实际使用,只是Linux保留了他们的储备,但有趣的是不允许我重新启动我的巨大JVM时使用它们。 任何帮助将是伟大的。

Java读生活日志文件

我正在用Java编写一个cod4服务器控制器(我知道那里有完美的服务器控制器,但我想从中学习)。 现在我想根据日志文件中的条目采取具体的操作,这个文件经常被鳕鱼更新,文件会变得很大。 现在我怎样才能有效地读取每一秒左右文件已经改变的部分呢? 或者是否有办法将日志文件中的所有内容都发送给Java?(我读了一些关于pipe道的内容)。 服务器在Linux上运行。 日志文件不需要保存在同一个位置,因为所有的东西都应该通过Java来保存。 大约一秒或2秒的延迟是可以接受的,但不再是。

复制图像到剪贴板不能在Linux上工作(Java AWT和SWT)

我正在开发包含JFreeChart的Eclipse RCP应用程序。 其function之一是将graphics复制到剪贴板以便将其粘贴到其他应用程序中,但在Linux上不起作用, 有一个SWT示例 ,你可以find一个在Linux中不起作用的代码片段。 另一方面,JFreeChart在AWT上实现了这一点: Clipboard systemClipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); Insets insets = getInsets(); int w = getWidth() – insets.left – insets.right; int h = getHeight() – insets.top – insets.bottom; ChartTransferable selection = new ChartTransferable(this.chart, w, h, getMinimumDrawWidth(), getMinimumDrawHeight(), getMaximumDrawWidth(), getMaximumDrawHeight(), true); systemClipboard.setContents(selection, null); 这两个例子在Linux 64bit上都失败了。 有没有办法来实现它? 提前致谢! 编辑: 将JFreeChartgraphics复制到文件但不复制到剪贴板中的代码 final org.eclipse.swt.dnd.Clipboard clipboard = new […]

如何在Java中pipe理Linux文件权限

有没有任何机制来获取和设置文件/目录权限? 例如,我想以shell的方式显示一个文件的许可: -rwxr-xr– 有没有可能使用Java来做到这一点? 我知道File类中有一些方法可以知道文件canExecute , canRead和canWrite ,但是AFAIK这个信息仅适用于当前用户。 我需要知道整个八进制数,例如755,所以我需要从用户,组和其他人那里得到它。 我知道Java7带来Posix操作,但是如何使用更小的JRE来实现呢? 我不想使用像ls或chmod这样的命令。 提前致谢。

如何导出一个eclipse 4应用程序的多平台

如何导出一个eclipse 4应用程序,以便它可以在Windows或Linux ? 我发现产品configuration有所有平台的选项卡: 但是当我输出的时候,我在repository\binary看到了一个名为product_root.win32.win32.x86_64的产品,这个product_root.win32.win32.x86_64表明它是根据我的开发机器生成的,它是Windows 7/64bit 。 所以要导出应用程序在Linux中运行,导出必须在Linux机器上完成? 即我必须导入我的项目文件在运行在Linux中的eclipse,然后做出口? 更新1: 在@Bazbuild议之后,我安装了增量包。 但在出口时,我得到了以下错误: 我的设置是: 和 那么为什么我在导出期间得到错误? 更新2: 好。 必须将增量包添加为运行平台的一部分,而不是新的空目标。 现在出口确实出口多个平台。 试图Win / 32bit和Win / 64位。 当我尝试运行Win / 64位(这也是我的电脑的平台)一切都很好。 但是,当我尝试运行Win / 32位版本时,我得到错误, it can not find the jre 为什么我得到这个错误? 我应该捆绑jre吗? 为什么它为Win / 64位工作? 我没有设置JAVA_HOME

亚马逊linux – 安装openjdk-debuginfo?

我试图在amazon linux上使用ec2实例上的jstack 。 所以我安装了openjdk-devel软件包。 sudo yum install java-1.7.0-openjdk-devel.x86_64 但是jstack引发了exceptionjava.lang.reflect.InvocationTargetException 。 sudo -u tomcat jstack -J-d64 -m 941 谷歌会议15分钟后,我发现一些qna说安装openjdk-debuginfo软件包可能会有所帮助。 但是我怎样才能安装openjdk-debuginfo ? 这不是在yum search 。

如何构buildnetty-transport-native-epoll-4.0.32.Final-linux-x86_64.jar?

我在netty中使用本地epoll传输,并能够从存储库下载netty-transport-native-epoll-4.0.32.jar。 但是我也需要netty-transport-native-epoll-4.0.32.Final-linux-x86_64.jar,但是无法在任何地方find它。 请让我知道在哪里下载这个jar,或者如何构build它。

如何在java中获取当前目录?

我正在尝试从java获取我的项目的当前目录。 我正在使用下面的代码行来获取path的详细信息。 types1: File directory = new File ("."); try { System.out.println ("Current directory's canonical path: " + directory.getCanonicalPath()); System.out.println ("Current directory's absolute path: " + directory.getAbsolutePath()); }catch(Exception e) { System.out.println("Exceptione is ="+e.getMessage()); } types2: String currentDir = System.getProperty("user.dir"); System.out.println("Current dir using System:" +currentDir); 从主类执行上述代码时,我正在获取项目目录。 当我从服务器端执行,得到“当前目录使用系统:D:\ Apache Tomcat 6.0.16 \ bin”。 但是我的项目位于D:\Apache Tomcat 6.0.16\wepapps\SampleStructs 。 […]

Eclipse的JVM启动错误终止。 升级Ubuntu更新后退出代码= 13

我刚刚更新了Ubuntu,然后Eclipse崩溃了。 有谁知道一个解决scheme? 否则我必须重新安装这些东西。