Articles of Java的

Linux上的Java套接字错误(0xFF发送,-3收到)

在Java中使用WebSocket服务器时,遇到了这个奇怪的错误。 我把它缩小为两个小的java文件,一个是服务器,另一个是客户端。 客户端只需发送0x00 ,stringHello和0xFF (根据WebSocket规范)。 在我的Windows机器上,服务器打印下列内容: Listening byte: 0 72 101 108 108 111 recieved: 'Hello' 而在我的unix框相同的代码打印以下内容: Listening byte: 0 72 101 108 108 111 -3 而不是接收0xFF它得到-3,从来没有打破循环,从不打印它收到。 代码的重要部分如下所示: byte b = (byte)in.read(); System.out.println("byte: "+b); StringBuilder input = new StringBuilder(); b = (byte)in.read(); while((b & 0xFF) != 0xFF){ input.append((char)b); System.out.print(b+" "); b = (byte)in.read(); } inputLine […]

在CentOS中禁用UseGCOverheadLimit

我需要在我的CentOS服务器中禁用GC开销限制。 这样做的原因是暂时阻止java.lang.OutOfMemoryError: GC overhead limit exceededexception。 但是我在Linux + Java系统上是零,并且不知道如何运行这个命令行: -XX:-UseGCOverheadLimit

从java中查找linux发行版的名字

我们正在用java编写一个小型库,需要从底层系统收集信息。 我们能够从java的系统属性中读取大部分内容,但是我们似乎无法find在Linux上运行时提取发行版名称的正确方法。 电话 System.getProperty("os.name"); 返回“Linux”(我们也收集),但我们正在寻找一种方法来获得例如“Ubuntu”。 我们在java中需要这个解决scheme,并且不想做一些/ etc / releaseparsing

Jconsole无法连接

所有, 我正在使用VNC连接到服务器。 我能够将VNC导入服务器,并打开Jconsole,但无法连接到我的进程,无论是否包含PID或尝试使用GUI进行连接。 奇怪的是GUI中显示的所有进程。 见下文。 我尝试连接时遇到这个问题: 其次是 有什么我需要做的,以便让jconsole本地在Linux服务器上通过vnc工作? 谢谢

Tesseract错误。 非法的最小或最大规格

试图从这里运行示例代码http://tess4j.sourceforge.net/codesample.html我有一个错误说 Error: Illegal min or max specification! signal_termination_handler:Error:Signal_termination_handler called:Code 5002 我find了解决scheme,例如https://code.google.com/p/tesseract-ocr/issues/detail?id=228 ppl说设置区域设置足以摆脱错误。 我的问题是,我用Java编写而不是C ++,而且我无法find任何地方如何在代码中设置区域设置,就像他们那样做的那样 #include <locale.h> setlocale (LC_NUMERIC, "C"); 我试图使用setTessVariable(String, String)方法,但它没有工作。 我会提到,我的PDF文件,这是input,是在波兰语言,所以如果有人知道我应该如何设置这些地区,我将不胜感激。 我尝试在Linux x64平台上运行它。

当Jenkins执行Maven时,Maven使用不正确的Java版本

我有一些与Maven和Jenkins编译和部署的项目,直到现在我已经将Java版本从6更改为7。 为了做到这一点,我执行了命令sudo update-alternatives –config javac,并更改了/ etc / profile文件中的JAVA_HOME和PATH的值。 我也修改了POM文件,所以它使用JDK 1.7: <properties> … <jdk.version>1.7</jdk.version> </properties> <plugin> <artifactId>maven-compiler-plugin</artifactId> … <configuration> <source>${jdk.version}</source> <target>${jdk.version}</target> </configuration> </plugin> 当我在控制台上执行它们时,它们编译得很好,显示的版本是正确的: javac -version javac 1.7.0_55 mvn install -debug Apache Maven 2.2.1 (rdebian-8) Java version: 1.7.0_55 Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre 然而,当我在jenkins的工作中做同样的工作时,Maven使用1.6版本而不是1.7版本: javac -version javac 1.7.0_55 mvn install -debug Apache Maven 2.2.1 (rdebian-8) Java version: 1.6.0_31 […]

无法使用Linux上的NetworkInterface.getNetworkInterfaces获取所有networking接口

我需要打印我的机器的所有mac地址。 推荐的方法是使用NetworkInterface.getNetworkInterfaces()并遍历返回的枚举。 但是,当一些设备closures(没有IPconfiguration),那么上述方法将不会返回接口。 运行“ip addr”将返回以下内容 lo:mtu 16436 qdisc noqueue link / loopback 00:00:00:00:00 brd 00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 :: 1/128 scope host valid_lft永远forever_lft永远 G2:mtu 1500 qdisc pfifo_fast qlen 1000 link / ether 00:03:b2:75:99:c2 brd ff:ff:ff:ff:ff:ff G1:mtu 1500 qdisc pfifo_fast qlen 1000 link / ether 00:03:b2:75:99:c3 brd ff:ff:ff:ff:ff:ff inet 10.205.191.123/16 brd 10.205.255.255 scope […]

确定STDERR是否要去terminal

我有一套Java程序,在我们的Linux服务器上用作命令行工具。 他们大多使用一个在STDERR上打印进度条的类,类似于Perl的Term::ProgressBar 。 我希望每当STDERR进入terminal时都会显示进度条,并且在STDERR被redirect时自动禁用自身,这样redirect的数据中就没有各种进度条了。 检查System.console() == null是我的第一个想法,但redirectSTDOUT就足以使这是true ,即使STDERR仍然要去terminal。 有什么我可以检查是特定于STDERR? 特定于Linux的解决scheme或使用本机API的解决scheme对于我的需求可以。

在哪里以及如何在Linux中stored procedures信息

我是Linux新手,我只是搞砸了,但现在我想让我的Java程序在Linux上运行… 我在互联网上快速浏览了一下,我find了一个目录及其描述的列表。 /usr/lib似乎是我stored procedures信息的最佳位置,但是我只是在VirtualBox虚拟机上看了一下,看来我不能写在那里,即使有root权限。 所以如果任何人都可以指出我的方向是非常好的。 我也注意到,Linux有它自己的“软件中心”,恐怕我可能会错误的做到这一点,所以如果有人愿意,提供一个! 提前致谢 PS我的虚拟机是Ubuntu发行版

java.lang.SecurityException:Permission Denial:starting Intent {act = android.intent.action.MAIN cat =

有一个错误启动activity ,不幸的是,我认为它没有严格地与项目连接,因为应用程序在genymotion模拟器上启动,但不在物理设备上。 当我运行adb devices与真正的连接我得到: List of devices attached 0009215b1eef4f device AndroidManifest.xml没有任何权限需要设置和设备有足够的api version 。 问候