Tag: linux

Java Riak连接问题

尝试将我的Java Eclipse连接到Linux Ubuntu上的Riak服务器。 跟进了一些指南,但仍然无法正常工作。 使用: – Riak-Client-2.0.2 – Eclipse Oxygen.1a版本(4.7.1a) – Ubuntu 16.04.3 – openjdk版本“1.8.0_151” 在使用slf4j之前遇到了一些问题所以我添加了一个外部jar:slf4j-jdk14-1.7.25-sources来解决它。 我的代码: import com.basho.riak.client.api.RiakClient; import com.basho.riak.client.api.commands.kv.FetchValue; import com.basho.riak.client.api.commands.kv.StoreValue; import com.basho.riak.client.core.query.Location; import com.basho.riak.client.core.query.Namespace; import java.net.UnknownHostException; import java.util.concurrent.ExecutionException; public class ProdukteEinlesen { public static void main(String [] args) throws UnknownHostException, ExecutionException, InterruptedException { RiakClient client = RiakClient.newClient(8098, “127.0.0.1”); Location location = new […]

在我的Raspberry中安装rxtx包

我想在我的Raspberry Pi上安装一个rxtx软件包,该软件包将在KURA平台上运行(Equinox是Kura的OSGi容器) 我使用以下命令安装了rxtx本机库:sudo apt-get install librxtx-java .so安装在目录中:/ usr / lib / jni / pi@raspberrypi /usr/lib/jni $ ls librxtxI2C-2.2pre1.so librxtxParallel.so librxtxRS485-2.2pre1.so librxtxSerial-2.2pre1.so librxtxI2C.so librxtxRaw-2.2pre1.so librxtxRS485.so librxtxSerial.so librxtxParallel-2.2pre1.so librxtxRaw.so 然后我按照这个链接将rxtx库包装在一个包中http://rxtx.qbang.org/wiki/index.php/Wrapping_RXTX_in_an_Eclipse_Plugin 我添加到捆绑清单中: Bundle-NativeCode: /usr/lib/jni/librxtxSerial.so;osname=”Linux”;processor=”armv6l” 因为我的os类型是linux,我的架构是ARM: pi@raspberrypi ~ $ cat /proc/sys/kernel/{ostype,osrelease,version} Linux 3.18.11+ #781 PREEMPT Tue Apr 21 18:02:18 BST 2015 pi@raspberrypi ~ $ arch armv6l 但是我仍然无法安装捆绑包,我收到了这个错误: !ENTRY 1 […]

如何用java读取所有网卡

我想在我的系统中查找(使用java)所有网卡和网络接口。 所以,更确切地说,我想从ifconfig命令(在Linux中)获得整个输出,但是在Java中。 我知道如果我使用NetworkInterface.getNetworkInterfaces()将只返回配置的网络接口。 我在这个链接上找到了一个粗略的方法。 没关系,但我很感兴趣,如果还有其他可能性。

Raspberry Pi无法在JavaFX应用程序中隐藏鼠标光标

目前我为Raspberry Pi 3开发了一个JavaFX应用程序。为了在我的PC上进行开发,我使用Ubuntu 16.04.1,OpenJDK 1.8.0_111和OpenJFX 8.0.60。 对于Raspberri Pi上的操作,我使用Raspbian Jessie和PIXEL(在控制台模式下启动),OpenJDK 1.8.0_40和OpenJFX 8.0.60。 不需要图形鼠标光标,因为用户只应使用触摸屏与应用程序进行交互。 此外,鼠标光标很烦人,因为它略微覆盖了屏幕的内容。 此外,每当触摸屏幕时,它通过改变其位置来刺激用户。 因此我想隐藏屏幕上的鼠标光标。 在我的电脑上,我可以使用以下代码隐藏鼠标光标: scene.setCursor(Cursor.NONE); 我使用bash shell在Raspberry Pi上启动应用程序 java -jar MyApp.jar 执行此操作后,setCurser属性最初起作用。 但是在触摸屏幕或移动鼠标后,屏幕上会出现默认的鼠标光标。 这似乎是一个尚未解决的问题: 在raspberrypi.org论坛上发帖 OpenJFX Wiki说: 请注意,Raspberry Pi上的JavaFX的默认配置不使用X11。 相反,JavaFX直接与显示帧缓冲区和输入设备一起工作。 因此,启动JavaFX时不应该运行X11桌面。 作为一种解决方法,如何在Raspbian Jessie的framebuffer中隐藏图形鼠标光标?

在java程序中执行bash命令

我已经有一段时间了,但我找不到解决方案。 我正在尝试在.jar文件中的Linux上执行bash命令。 为此,我尝试了很多东西,包括: Process p = new ProcessBuilder(“java”, “-jar”, “M1_MIAGE_PDL_VIZ_GROUPE3.jar”, “menu”).start(); Runtime.getRuntime().exec(“/bin/sh -c java -jar M1_MIAGE_PDL_VIZ_GROUPE3.jar menu”); Runtime.getRuntime().exec(new String[]{“/bin/sh -c”, “java -jar M1_MIAGE_PDL_VIZ_GROUPE3.jar menu”}); 所以,当我点击.jar文件时,我想程序打开一个bash,然后执行命令(java -jar …)来执行程序的另一部分。 关于如何做的任何想法?

如何使用Java获得chromedriver进程PID?

我遇到了一个问题。 有时,在我的JUnit测试运行时,命令webDriver.quit(); 是不是杀死chromedriver进程所以下一个测试无法启动。 在这种情况下,我想添加一些可能在Linux上手动杀死进程的方法,但我无法弄清楚如何获得chromedriver的PID,所以我可以做类似的事情:Runtime.getRuntime()。exec(KILL + PID);

JCMD的代码/内部部分包含哪些内容?

为基于JVM的服务标注docker容器的方法很棘手(众所周知)。 我很确定我们对容器的尺寸略微不足,并希望清除我在监控时看到的与特定jcmd(本机内存跟踪器)输出相关的一些问题。 问题: 是否由jcmd报告的“内部”包含直接字节缓冲区? 除了jcmd报告的“代码”之外还有什么代码缓存? 是否有一种很好的方法来限制jcmd报告的“代码”部分。 我阅读了https://docs.oracle.com/javase/8/embedded/develop-apps-platforms/codecache.htm,但这仅涵盖了代码缓存限制,建议保持JVM默认不变。 JCMD输出在这里。 直接字节缓冲区 JMX属性在这里。 一些背景细节: 设置: 基于Spring引导的应用程序 JVM选项: -server -Xms1792m -Xmx1792m -XX:MetaspaceSize = 128M – XX:MaxMetaspaceSize = 192M -XX:+ UseG1GC -XX:+ UseStringDeduplication – XX:MaxDirectMemorySize = 256m -XX:NativeMemoryTracking = detail Docker容器2500MiB在AWS / EC2中运行

在Java程序中设置shell脚本/访问中的环境变量

我想在Ubuntu 10.04中使用shell脚本设置环境,并希望在java程序中访问。 我写了这样的shell脚本: #! /bin/sh export JAVA=/home/ubuntu echo “Variable $JAVA” 我的java程序是: import java.util.Map; public class SystemEnv { public static void main(String[] args) { Map variables = System.getenv(); for (Map.Entry entry : variables.entrySet()) { String name = entry.getKey(); String value = entry.getValue(); System.out.println(name + “=” + value); } System.out.println(System.getenv((“JAVA”))); } } 当我在没有shell脚本的情况下执行此命令时,它运行良好,但在shell脚本中却没有。

使用JeMalloc在Java应用程序中查找本机内存泄漏

目前我正在尝试解决Java内存问题:我的Java应用程序不断使用越来越多的内存,最终它被Linux OOM杀手杀死。 可能存在Native Memory泄漏,因为在使用VisualVM检查JVM之后,metaspace和堆看起来都没问题。 使用top命令,我可以看到JVM使用的内存不断增加。 本文中的第一个图形: 示例#1 与我在自己的应用程序中看到的完美匹配。 所以我尝试使用JeMalloc来查找各种文章中描述的泄漏。 在这里我遇到了一个问题:在jeprof本身使用jeprof命令和更高版本的top命令时,它确实显示了使用最多内存的函数,但它们都是hex地址,因此我必须缺少一些符号。 但我不知道我需要哪些包,这是我不知道的。 我已经找到了这个链接: 链接#1 并安装了这个包:debuginfo-install java-1.8.0-openjdk 我试图先完成简单的步骤: 让JeMalloc使用简单的应用程序,例如w。 接下来让它与java -version一起使用。 到目前为止,我还可以从JeMalloc获得完美概述的PDF文件。 接下来让它与java -jar一起工作simpletest.jar <<这里我缺少符号例如,如果我不在这里关闭GZipInputStream,那么它不会出现在JeMalloc结果中。 接下来让它使用java -jar myapplication.jar <<这里我也缺少符号。 所以我的问题基本上是:为了让JeMalloc显示所有符号名称以调试应用程序,我需要哪些软件包,例如: public void test1() { InputStream fileInputStream = null; GZipInputStream gzipInputStream = null; try { fileInputStream = new FileInputStream(“test.zip”); gzipInputStream = new GZIPInputStream(fileInputStream); int data = gzipInputStream.read(); while […]

无法在VisualVM中查看Visual GC

我在我的本地Windows机器上使用Java VisualVM来监视我的远程服务器(Linux)。 除了“ Visual GC ”之外,我能够在Bisual VM中获取所有统计数据。 它显示“此JVM不支持”。 我用google搜索它,发现它可能是因为jstatd没有运行和连接。 所以执行了“ jstatd -J-Djava.security.policy = / tmp / tools.policy ”。 它显示了一个ip“ 175.41.139.225 ”。 我无法理解为什么它试图连接到这个IP。 它不是我的远程机器的ip,也不是我的本地机器的ip。 [root@shipping_pt mail]# jstatd -J-Djava.security.policy=/tmp/tools.policy Could not contact registry Connection refused to host: 175.41.139.225; nested exception is: java.net.ConnectException: Connection refused java.rmi.ConnectException: Connection refused to host: 175.41.139.225; nested exception is: java.net.ConnectException: Connection refused at […]