「java调试卡死」java进程卡死

博主:adminadmin 2022-12-15 04:27:07 75

今天给各位分享java调试卡死的知识,其中也会对java进程卡死进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

Java程序卡住,在jstack输出调用栈之后恢复,可能是什么原因

jstack用于打印出给定的java进程ID或corefile或远程调试服务的Java堆栈信息。如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式:jstack[-l]pid如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的javastack和nativestack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的javastack和nativestack的信息,如果现在运行的java程序呈现hung的状态,jstack是非常有用的。需要注意的问题:l不同的JAVA虚机的线程DUMP的创建方法和文件格式是不一样的,不同的JVM版本,dump信息也有差别。l在实际运行中,往往一次dump的信息,还不足以确认问题。建议产生三次dump信息,如果每次dump都指向同一个问题,我们才确定问题的典型性。2、命令格式$jstack[option]pid$jstack[option]executablecore$jstack[option][server-id@]remote-hostname-or-IP参数说明:pid:java应用程序的进程号,一般可以通过jps来获得;executable:产生coredump的java可执行程序;core:打印出的core文件;remote-hostname-or-ip:远程debug服务器的名称或IP;server-id:唯一id,假如一台主机上多个远程debug服务;示例:$jstack–l23561线程分析:一般情况下,通过jstack输出的线程信息主要包括:jvm自身线程、用户线程等。其中jvm线程会在jvm启动时就会存在。对于用户线程则是在用户访问时才会生成。ljvm线程:在线程中,有一些JVM内部的后台线程,来执行譬如垃圾回收,或者低内存的检测等等任务,这些线程往往在JVM初始化的时候就存在,如下所示:1"AttachListener"daemonprio=10tid=0x0000000052fb8000nid=0xb8fwaitingoncondition[0x0000000000000000]23java.lang.Thread.State:RUNNABLE4567Lockedownablesynchronizers:89-None1011destroyJavaVM"prio=10tid=0x00002aaac1225800nid=0x7208waitingoncondition[0x0000000000000000]1213java.lang.Thread.State:RUNNABLE14151617Lockedownablesynchronizers:1819-Nonel用户级别的线程还有一类线程是用户级别的,它会根据用户请求的不同而发生变化。该类线程的运行情况往往是我们所关注的重点。而且这一部分也是最容易产生死锁的地方。1"qtp496432309-42"prio=10tid=0x00002aaaba2a1800nid=0x7580waitingoncondition[0x00000000425e9000]23java.lang.Thread.State:TIMED_WAITING(parking)45atsun.misc.Unsafe.park(NativeMethod)67-parkingtowaitfor(ajava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)89atjava.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)1011atjava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2025)1213atorg.eclipse.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:320)1415atorg.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:479)1617atjava.lang.Thread.run(Thread.java:662)18192021Lockedownablesynchronizers:2223-None从上述的代码示例中我们可以看到该用户线程的以下几类信息:Ø线程的状态:waitingoncondition(等待条件发生)Ø线程的调用情况;Ø线程对资源的锁定情况;

java调用bat,卡死在某一步

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

public class Test {

public static void main(String[] args) throws IOException {

Process p = Runtime.getRuntime().exec("cmd /c D:\\a.bat");

InputStream fis = p.getInputStream();

final BufferedReader br2 = new BufferedReader(new InputStreamReader(p.getErrorStream()));

InputStreamReader isr = new InputStreamReader(fis);

final BufferedReader br = new BufferedReader(isr);

Thread t1 = new Thread(){

public void run(){

String line = null;

try {

while ((line = br2.readLine()) != null) {

System.out.println(line);

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

};

Thread t2 = new Thread(){

public void run(){

String line = null;

try {

while ((line = br.readLine()) != null) {

System.out.println(line);

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

};

t1.start();

t2.start();

}

}

这样写就没问题了,API里有写:Because some native platforms only provide limited buffer size for standard input and output streams, failure to promptly write the input stream or read the output stream of the subprocess may cause the subprocess to block, and even deadlock.因为本地进程输入输出缓存有限,找不到TaReport会导致stderr输出,你不快点读取的话Process就挂在那了。

下面是输出 :

******************************************

TAReport Start, wait for a moment please!!!

******************************************

java.lang.NoClassDefFoundError: TaReport

Caused by: java.lang.ClassNotFoundException: TaReport

at java.net.URLClassLoader$1.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClassInternal(Unknown Source)

Could not find the main class: TaReport. Program will exit.

Report has been sent, please check mail box!!!

Exception in thread "main"

Java运行一串代码后把电脑卡死了,代码没错,运行出一次后就再也没用了,只要一运行这个代码就卡

代码与你的电脑系统不兼容。

建议你用PHP的来做。

win7 64位。

java 如何判断一个程序是否卡死,然后再处理

一般来说需要处理超时问题,你的系统应该是有和硬件做交互,这个时候有两种做法,一种是硬件本身做超时设置,比如一个线程处理接收到的指令,另一个线程处理计时,时间到后没有收到信息就是超时,超时后执行复位操作

另一种是外部系统做处理,方式一样,但是有漏洞,一般来说没有第一个指令发出后及时你外部做了超时中断,也有可能硬件线程无法终止导致卡机,除非杀死进程,但是程序的复杂性就增加了

总之:你想通过JAVA来判断一个程序是否卡死,最好的方法是这个程序能够自己判断是否卡死,否则JAVA程序还是会有点问题。如果说如何实现,就是用线程的方式实现

用火狐浏览器调试Java项目 一报错 就卡住了,整个电脑都卡了 什么情况

您好!

可能是扩展造成的,您可以在工具--附加组件里排查下,不行就点击 Windows的开始按钮,选择运行...在运行对话框中,输入:firefox.exe -p 点击确定,为浏览器新建一个配置文件。

希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。

了解更多火狐浏览器的使用小技巧,请到火狐社区:

感谢您对火狐浏览器的支持!

Java开发页面不定时卡死是什么问题?怎么决解?

这个需要对工具进行优化:

1. 取消系统的自动折叠

Window-Preferences-Java-Editor-Folding:Enable folding

2. 取消按"."后自动激活提示功能。这样会有些提高速度

Window-Preferences- Java-Editor-Content Assist:Enable auto activation

3. 关闭不常用的工程

一些不常用的工程打开的时候,也会影响你正在使用工程的操作速度。

4. 设置启动参数

起动的时候加上参数:eclipse.exe -vmargs -Xverify:none -XX:+UseParallelGC -XX:PermSize=20M

-Xms64M -Xmx200M

如果你的内存是1G的。可以将最后一个参数Xmx200M改为 Xmx512M

这个在你的起动快捷键的属性里设置。

6. 取消Plugin

进入Preferences把Plug-in DevelopmentTarget Platformplug-in里跟自己无关或者暂且不用的plug

-in去掉勾选,我这里共400多个中去掉了100多个。

7. 设置Edit Mode

MyEclipse5.0.1GA_E3.2 之前的:Window-Preferences---myeclipse-files Editors下把跟编辑有关的所有

的Edit Modes 设为Disable Design Mode

8. 设置视图

打开Customize Perspective里自己没用到的选项自己去掉勾选。

5. 取消MyEclipse在启动时自动验证项目配置文件

默认情况下MyEclipse在启动的时候会自动验证每个项目的配置文件,这是一个非常耗时的过程,可以在Preferences窗口依次选择MyEclipse - Validation,然后在右侧的Validator列表中只保留 Manual 项就可以了。如果需要验证的时候只需要选中文件,然后右键选择 MyEclipse - Run Validation就可以了。

9. 去除不需要加载的模块

一个系统20%的功能往往能够满足80%的需求,MyEclipse也不例外,我们在大多数时候只需要20%的系统功能,所以可以将一些不使用的模块禁止加载启动。通过Windows - Preferences打开配置窗口,依次选择左侧的General - Startup and Shutdown,这个时候在右侧就显示出了Eclipse启动时加载的模块,可以根据自己的实际情况去除一些模块。

你也可以在网上去查一些关于优化的资料,希望对你有帮助。

关于java调试卡死和java进程卡死的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-15,除非注明,否则均为首码项目网原创文章,转载请注明出处。