Articles of Java的

调用DestroyJavaVM后重新调用JNI_CreateJavaVM返回-1

调用DestroyJavaVM后,我试图调用JNI_CreateJavaVM。 我按照以下顺序调用它们:InitJVM – > ReleaseJVM – > InitJVM 初始化时,JNI_CreateJavaVM返回0,并正常工作。 第二次在销毁后初始化时,JNI_CreateJavaVM返回-1而不起作用。 会有什么问题? 这是一个创buildJVM的函数: #elif __linux HRESULT PWNJava::InitJVM(void) { if(m_bRunning) { Log("Error : JVM is already Running! (PWNJava::Init)"); return PWN_FAIL; } const int kNumOptions = 3; JavaVMOption options[kNumOptions] = { { const_cast<char*> ("-Xmx128m"), NULL}, { const_cast<char*> ("-verbose:gc"), NULL}, { const_cast<char*> ("-Djava.class.path=../../Class"), NULL} }; JavaVMInitArgs vm_args; vm_args.version = […]

parsing游标输出java

我怎样才能parsing从linux游标程序的输出,如在Java顶部? 我希望有人给一个例子或链接一个。 现在我得到顶级的运行像一个过程对象。 顺便说一句,这只是一个这样的程序的例子。 String[] args={"top"}; Process process = new ProcessBuilder(args).start();

LineChart JavaFX性能

对于Raspian – Raspberry Pi上的LineChart,我正在经历比正常响应慢的情况。 我正在编码示波器,并不断重新绘制两个500点的系列(共1000点)。 animation已closures。 数据收集是高性能的(低于2ms)。 当前数据重绘时间为800毫秒左右。 所需的重绘时间至less为100ms。 我在下面包含了代码片段。 在树莓派上的高性能javafx图表显示的最佳做法是什么? 我采取了错误的做法? 我应该用不同的图表来连续重绘两行吗? 平台: 树莓派v。3 OS:Raspian版本8(jessie) Java版本: java版本“1.8.0_65” Java(TM)SE运行时环境(build 1.8.0_65-b17) Java HotSpot(TM)Client VM(构build25.65-b01,混合模式) JavaFX版本:armv6hf-sdk 8.0.102(build b00) 内存分割:512 MBgraphics,512 MB系统 video:HDMI SoC:Broadcom BCM2837 CPU:4×ARM Cortex-A53,1.2GHz 显示代码 @FXML LineChart oscilloscope; //indicates that the previous data has been displayed //and that the latest data should now be displayed […]

BIRT报告不会在Linux上显示Unicode字符

我在birt-viewer目录下的Redhat Linux生产服务器上部署了BIRT3.7.1报告,问题是不是显示所有unicode字符,失败后左边的报告是空白的。 报告是在Windows XP x64机器上开发的,我已经将所有窗口字体复制到Linux机器上,但仍然是同样的问题。 任何想法如何解决?

来自FileOutputStream.close()的设备不适当的ioctl

我有一些代码,使用FileOutputStream保存一些首选项文件。 这是我写了一千次的标准代码: FileOutputStream out = new FileOutputStream(file); try { BufferedOutputStream bos = new BufferedOutputStream(out); try { store(bos, comments); } finally { bos.close(); } } finally { out.close(); } 我们的一位用户在close()调用期间在Linux上报告了以下错误。 java.io.IOException: Inappropriate ioctl for device at java.io.FileOutputStream.close0(Native Method) at java.io.FileOutputStream.close(FileOutputStream.java:341) at java.io.FilterOutputStream.close(FilterOutputStream.java:160) 有没有人知道这是唯一发生错误地启动JVM的错误-d32或-d64参数(如在这个问题 ),或者有可能还有其他事情?

Linux上的Java窗口半透明animation闪烁

我正在尝试使用半透明的JFrame在Java中进行animation制作。 我在这里修改了Oracle Java教程中的演示代码。 具体是渐变透明窗口演示。 以下代码在Windows XP SP3(最多8个)和Mac OS X Mountain Lion(甚至大多数 Linux)中都能很好地工作。 Linux中的问题,以及我需要帮助的是animation闪烁。 我使用nVidia驱动程序,Metacity和Compiz运行Ubuntu Linux 12.04 LTS 64bit。 PERPIXEL_TRANSLUCENT报告为真,运行良好。 在下面的代码中是否有我缺less的东西,或者有什么需要改变的Linux端? 我在JPanel上尝试了setDoubleBuffered(true),但是并没有消除闪烁。 请将我的代码更改引用到下面的演示: import static java.awt.GraphicsDevice.WindowTranslucency.PERPIXEL_TRANSLUCENT; import java.awt.Color; import java.awt.Dimension; import java.awt.GradientPaint; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GraphicsDevice; import java.awt.GraphicsEnvironment; import java.awt.GridBagLayout; import java.awt.Paint; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.SwingUtilities; […]

从linux内的jvm中查找硬性和软性打开的文件限制(ulimit -n和ulimit -Hn)

我有一个问题,我需要从java / groovy程序中找出linux中进程的软硬件打开文件限制。 当我从terminal执行ulimit时,会为软打开的文件限制提供单独的值。 $ ulimit -n 1024 $ ulimit -Hn 4096 但是,如果我常规执行它,它会忽略软限制并始终返回硬限制值。 groovy> ['bash', '-c', 'ulimit -n'].execute().text Result: 4096 groovy> ['bash', '-c', 'ulimit -Hn'].execute().text Result: 4096 请让我知道,如果我失去了一些东西。 我已经使用Ubuntu 12.04,Groovy版本:1.8.4 JVM:1.6.0_29执行。 更新 :我在Java中尝试了同样的事情。 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import java.io.StringWriter; import java.io.Writer; public class LinuxInteractor { public static int executeCommand(String […]

自定义JavaFileManager的getJavaFileForOutput(…)方法不被编译器调用

我有一个自定义的JavaFileManager,看起来像这样: public class InMemoryForwardingFileManager extends ForwardingJavaFileManager<StandardJavaFileManager> { private final Map<String, ByteArrayJavaFileObject> javaFileObjects = new HashMap<>(); @Override public JavaFileObject getJavaFileForOutput(Location location, String className, Kind kind, FileObject sibling) throws IOException{ JavaFileObject fileObject = new ByteArrayJavaFileObject( … ); javaFileObjects.put(className, fileObject); return fileObject; } @Override public ClassLoader getClassLoader(Location location){ return new SecureClassLoader(InMemoryForwardingFileManager.class.getClassLoader()){ @Override protected Class<?> findClass(String name) throws ClassNotFoundException […]

Java Process无法通过Runtime.getRunTime()。exec()获取InputStream

try { String str; Process process = Runtime.getRuntime().exec("bash /home/abhishek/workspace/Pro/run"); InputStream isout = process.getInputStream(); InputStreamReader isoutr = new InputStreamReader(isout); BufferedReader brout = new BufferedReader(isoutr); while ((str = brout.readLine()) != null) { System.out.println(str); } } catch (IOException e) { e.printStackTrace(); } 该代码有从进程中获取InputStream的问题,因为如果我从我的terminal运行Shell脚本它运行完全正常,但如果我像这样运行脚本,str始终为空, 我正在使用此代码将Shell脚本的输出直接input到Java中,而不是将脚本输出写入文件中 有没有其他办法可以做到这一点,或者我怎样才能解决问题使用目前的做法

Fedora OpenJDK设置JAVA_HOME

我正在使用Fedora(实际上是Pidora,因为我正试图在Raspberrypi集群上设置hadoop)。 我使用ansible在所有节点上安装了oopenjdk。 但是,当我尝试设置JAVA_HOME环境variables时,我非常困惑地看着/usr/lib/jvm的文件夹: [root@datafireball1 jvm]# ls java-1.7.0-openjdk-1.7.0.60-2.4.7.0.fc20.arm jre jre-1.7.0 jre-1.7.0-openjdk jre-1.7.0-openjdk-1.7.0.60-2.4.7.0.fc20.arm jre-openjdk [root@datafireball1 jvm]# ls -alth total 80K drwxr-xr-x 3 root root 4.0K Jun 7 21:07 . lrwxrwxrwx 1 root root 35 Jun 7 21:07 jre-1.7.0-openjdk -> /etc/alternatives/jre_1.7.0_openjdk lrwxrwxrwx 1 root root 27 Jun 7 21:07 jre-1.7.0 -> /etc/alternatives/jre_1.7.0 lrwxrwxrwx 1 root root 29 Jun […]