Articles of Java的

Tomcat进程在交换空间不足后被Linux内核杀死; 不要得到任何JVM OutOfMemory错误

我正在对tomcat服务器进行负载testing。 服务器有10G物理内存和2G交换空间。 堆大小(xms和xmx)之前被设置为3G,并且服务器工作正常。 由于我仍然看到很多空闲的内存,性能不佳,我将堆大小增加到7G,然后再次进行负载testing。 这次我观察到物理内存很快就被吃掉了,系统开始消耗交换空间。 后来,tomcat在用完swap之后崩溃了。 我在启动tomcat时包含了-XX:+HeapDumpOnOutOfMemoryError ,但是我没有得到任何堆转储。 当我检查/var/log/messages ,我看到kernel: Out of memory: Kill process 2259 (java) score 634 or sacrifice child 。 为了提供更多的信息,这里是我从Linux top看到的命令,当堆大小设置为3G和7G xms&xmx = 3G(工作正常): 在启动tomcat之前: Mem: 10129972k total, 1135388k used, 8994584k free, 19832k buffers Swap: 2097144k total, 0k used, 2097144k free, 56008k cached 启动tomcat之后: Mem: 10129972k total, 3468208k used, 6661764k free, […]

如何编写一个Java守护进程

这将是一个networking应用程序,将总是(或者一如我所能pipe理的那样)在一个给定的端口上进行监听。 我对Java相当陌生,对于非Web服务器端编程来说是非常新的,所以我想从我的假设和初步计划中得到社区的反馈。 我已经阅读了关于jsvc( http://commons.apache.org/daemon/jsvc.html ),目前正在假设这是在linux中编写一个java程序守护进程的“最佳”方式运行centOS)。 可以configurationnagios来监视我的守护进程是否正在运行,并提醒我或系统pipe理员,当它不是? (我想是的,但我不是一个非常有才华的系统pipe理员types) 这将是一个SMPP客户端应用程序(或ESME应用程序,我猜)这就是为什么我selectJava,因为它似乎是一个非常成熟的SMPP平台。 但是,我知道用C / C ++编写守护进程更“传统”。 用现代Java,执行相当简单的任务,我是否可能遇到任何主要的缺点? pipe理新版本部署的最佳方式是什么? 只要停止守护进程,尽快更换二进制文件,然后重新启动? 任何其他input将不胜感激。

如何通过Windows中的端口findPID,并杀死使用Java发现的任务

我需要通过进程端口在java代码中杀死进程。 我可以在cmd中手动执行: C:\>netstat -a -n -o | findstr :6543 TCP 0.0.0.0:6543 0.0.0.0:0 LISTENING 1145 TCP [::]:6543 [::]:0 LISTENING 1145 C:\>taskkill /F /PID 1145 在Java中,我可以执行cmd命令,如: ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c", "netstat -a -n -o | findstr :6543"); 但我不知道如何得到PID作为netstat的输出,并将其传输到“taskkill”命令。 有人可以build议我吗?

USB编程与Windows

我想写一个程序来处理我的USB端口(Windows)。我不知道该怎么说,但这是它应该如何工作。该程序应该运行(这应该是第一件事情[病毒警卫之前询问是否这个闪存驱动器应该扫描])当一个闪存驱动器或外部硬盘驱动器插入到一个USB端口。 我不是在谈论汽车运行,我该怎么做。

java中的endTime有些问题

我想添加一个StartTime和EndTime到我的Java GUI,因为将有多个batch file正在运行,这将closures一个cmd,启动另一个cmd,closures此cmd并启动另一个直到所有batch file都被执行(batch file将运行在用户的select)。 当用户点击“开始”选项时,batch file将运行。 然后开始时间已经被logging下来,但是直到所有cmd都closures时才会显示(这是我实现后发现的)。 当进程结束时,显示的开始时间是正确的。 但显示的EndTime和StartTime是一样的,这是错误的。 我该如何解决这个问题? 这是我的编码: // Get system time Date date = new Date(); DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); // startTime GUI texts JLabel startTimeLabel = new JLabel("Start Time: "); startTimeLabel.setFont(new Font("Arial", Font.BOLD, 12)); startTimeLabel.setBounds(100, 245, 180, 53); contentPane.add(startTimeLabel); JStartTimeTextField = new JTextField(); JStartTimeTextField.setBounds(170,265,200,15); contentPane.add(JStartTimeTextField); JStartTimeTextField.setColumns(10); // […]

Apache Thrift Python-Java'拒绝连接'

我最近尝试使用Thrift将Python连接到Java。 我已经在Python(PyPy)上编写了一个服务器。 我也写了一个参考客户端的工作。 然后我写了一个Java客户端,它只产生一个“连接被拒绝”exception。 这有什么问题? (最近我还发现一个封闭的问题,具有这个问题https://issues.apache.org/jira/browse/THRIFT-1888 ) PS。 使用Thrift 0.9版本,PyPy 2.0 beta 2,Java 1.7.0_11 test.thrift namespace java com.test namespace python test service TestPing { void ping() } Python服务器代码 class TestPingHandler: def ping(self): pass handler = TestPingHandler() processor = TestPing.Processor(handler) transport = TSocket.TServerSocket(port=9091) tfactory = TTransport.TBufferedTransportFactory() pfactory = TBinaryProtocol.TBinaryProtocolFactory() server = TServer.TThreadedServer(processor, transport, tfactory, pfactory) print […]

使用JNI的Java VM EXCEPTION_ACCESS_VIOLATION?

如果有人可以帮我解决我的问题。 当我尝试通过使用API​​ jni来运行DLL中的函数时,JMV会产生这样的怀疑: # # An unexpected error has been detected by Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000077503290, pid=4796, tid=5348 # # Java VM: Java HotSpot(TM) 64-Bit Server VM (10.0-b19 mixed mode windows-amd64) # Problematic frame: # C [ntdll.dll+0x53290] # # An error report file with more information is saved as: # […]

有没有办法使用java打开“Windows移动中心”?

我认为你们大部分都听说过“Windows移动中心”。 这是由Windows可以改变音量,亮度等应用程序 我试图问你有什么方法可以使用Java代码打开“Windows移动中心”? 谢谢你的回答,对不起,如果我不确定。

通过Java控制应用程序

我正在寻找一种通过Java来模拟操作系统(特定于Windows)操作的方法。 最好,程序应该在后台运行,但如果不是这样的话,这并不重要。 感谢这个问题,我得到了背景部分。 我正在寻找以下具体function: 最大化/最小化当前活动的窗口。 (可以是任何窗口,而不仅仅是Java应用程序窗口。) closures当前活动的窗口。 打开已安装的程序,以及计算器,绘画等系统工具(我从这个问题中找出了这个问题)。 关机/重新启动(这个也完成了,感谢这里的问题。) 所以,我的实际问题是: 是否有可能从Java程序最小化/最大化或closures应用程序窗口? (在Windows中 ) 示例scheme: 首先,Java程序启动,它可以作为后台进程或作为窗口运行。 底线是它应该能够接受触发器,例如键盘快捷键或麦克风input来触发动作。 之后,假设Chrome窗口已打开并且当前处于活动状态。 现在按下预定义的快捷键,Chrome窗口将最小化/最大化或closures。 如果问题的答案是肯定的,我可以使用一些指针开始我的应用程序。 谢谢!

在不同的驱动器中访问Java包

考虑如果我的C:\ x \ y \ z中有一个软件包,而另一个软件包是D:\ m \ n \ o。 我如何在我的Java程序中访问它们? 我需要设置任何path吗?