图形界面效果图
参考代码
import javaawt;import javaawtevent;
import javaxswing;
//窗口继承JFrame, 实现了ActionListener接口
public class MsgFrame extends JFrame implements ActionListener {
private JTextField tf;
private JTextArea ta;
private JButton jbSend;
private static final String TIPS="短信内容不能为空";
public MsgFrame() {
ta = new JTextArea();
tasetText(TIPS);
tasetEditable(false);
add(ta);
tf = new JTextField(20);
JLabel jl = new JLabel("短信编辑");
jbSend = new JButton("发送");
jbSendaddActionListener(this);
JPanel jps=new JPanel();
jpsadd(jl);
jpsadd(tf);
jpsadd(jbSend);
add(jps,BorderLayoutSOUTH);
setSize(386, 280);//大小
setLocationRelativeTo(null);//居中
setTitle("发送短信窗口");
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) {
SwingUtilitiesinvokeLater(new Runnable() {
public void run() {
new MsgFrame()setVisible(true);//创建窗口并设置可见
}
});
}
@Override
public void actionPerformed(ActionEvent e) {
JButton jb=(JButton) egetSource();
if(jbSend==jb){//当发送按钮被点击时,进行处理
String text=tfgetText()trim();
if(textisEmpty()){
JOptionPaneshowMessageDialog(this, TIPS);//如果内容为空,那么提示
}else{
taappend("\r\n"+text);//如果内容不为空,那么添加到文本域
tfsetText("");//发送完成,清空文本框的内容
}
}
}
}
英文的中文解释——java进程快照,他可以显示当前运行在java虚拟机上的所有java进程信息,比如进程号、程序入口类、系统参数等一些简单信息。
比较常用的参数:
-q 只显示pid,不显示class名称,jar文件名和传递给main 方法的参数
$> jps -q
28680
23789
23651
-m 输出传递给main 方法的参数,在嵌入式jvm上可能是null
$> jps -m
28715 Jps -m
23789 BossMain
23651 Resin -socketwait 32768 -stdout /data/aoxj/resin/log/stdoutlog -stderr /data/aoxj/resin/log/stderrlog
-l 输出应用程序main class的完整package名 或者 应用程序的jar文件完整路径名
$> jps -l
28729 suntoolsjpsJps
23789 comasiainfoaimcbossbiBossMain
23651 comcauchoserverresinResin
-v 输出传递给JVM的参数
$> jps -v
23789 BossMain
28802 Jps -Denvclasspath=/data/aoxj/bossbi/twsecurity/java/trustwork140jar:/data/aoxj/bossbi/twsecurity/java/:/data/aoxj/bossbi/twsecurity/java/twcmccjar:/data/aoxj/jdk15/lib/rtjar:/data/aoxj/jd
k15/lib/toolsjar -Dapplicationhome=/data/aoxj/jdk15 -Xms8m
23651 Resin -Xss1m -Dresinhome=/data/aoxj/resin -Dserverroot=/data/aoxj/resin -Djavautilloggingmanager=comcauchologLogManagerImpl -
Djavaxmanagementbuilderinitial=comcauchojmxMBeanServerBuilderImpl
详细情况请参考sun官方文档。
>
1、 选中需转换成表格的文本;
2、 点击“表格→转换→文本转换成表格”,(见下图):
3、选取任何其他需要的选项,设置好后,点“确定”即可转换成表格(如下图):
确定
二、表格转换成文本
1、选中需转换成文本的表格;
2、点击“表格→转换→表格转换成文本”, 见下图):
3、设置好转换后的符号,点“确定”即可。
可以关掉的进程有:
QQexe
IEXPLOREEXE
jqsexe
DuoSpeakexe
safeboxTrayexe
RTHDCPLEXE
XP常见进程:
(1)360trayexe
360安全卫士应用程序实时保护模块
(2)algexe
是微软windows *** 作系统自带的程序。它用于处理微软windows网络连接共享和网络连接防火墙。这个程序对你系统的正常运行是非常重要的。
(3)avgasexe
是 AVG 75(德国)查杀木马软件的相关程序。
(4)avpexe(2个)
是卡巴斯基杀毒软件的相关程序。
但如果没有安装该软件,则可能是病毒的文件,它本身是一个压缩文件,如果打开压缩文件,就会变成136kb的文件。
(5)caexe
是etrustezfirewall防火墙的一部分,用于保护你的计算机免受网络攻击。此进程对电脑的正常运行及安全起着重要作用,不能终止。
(6)csrssexe
是微软客户端/服务端运行时子系统。该进程管理windows图形相关任务。这个程序对你系统的正常运行是非常重要的。
注意:csrssexe也有可能是w32netskyab@mm、w32webus木马、win32ladexa等病毒创建的。该病毒通过email邮件进行传播,当你打开附件时,即被感染。该蠕虫会在受害者机器上建立smtp服务,用以自身传播。该病毒允许攻击者访问你的计算机,窃取木马和个人数据。请注意此进程所在的文件夹,正常的进程应该是在windows的system32和servicepackfiles\i386下面
(7)ctfmonexe
是microsoft office产品套装的一部分。它可以选择用户文字输入程序,和微软office xp语言条。这不是纯粹的系统程序,但是如果终止它,可能会导致不可知的问题。
(8)explorerexe
是windows程序管理器或者windows资源管理器,它用于管理windows图形壳,包括开始菜单、任务栏、桌面和文件管理。删除该程序会导致windows图形界面无法适用。
注意:explorerexe也有可能是w32codered和w32mydoomb@mm病毒。该病毒通过email邮件传播,当你打开附件时,就会被感染。该蠕虫会在受害者机器上建立smtp服务,用于更大范围的传播。该蠕虫允许攻击者访问你的计算机,窃取密码和个人数据。请注意此进程所在的文件夹,正常的进程应该是在windows和servicepackfiles\i386下面。
(9)guardexe
是 AVG 75(德国)查杀木马软件启动的监控进程。
(10)iexploreexe
是microsoft internet explorer的主程序。这个微软windows应用程序让你在网上冲浪,和访问本地interanet网络。这不是纯粹的系统程序,但是如果终止它,可能会导致不可知的问题。iexploreexe同时也是avant网络浏览器的一部分,这是一个免费的基于internet explorer的浏览器。
注意:iexploreexe也有可能是木马killavb病毒,该病毒会终止你的反病毒软件,和一些windows系统工具。正常的进程应该是在\programfiles\internetexplorer和system32\dllcache下面
(11)lsassexe
是一个关于微软安全机制的系统进程,主要处理一些特殊的安全机制和登录策略。
(12) notepadexe
是windows自带的记事本程序。是windows默认用来打开和编辑文本文件的程序。
(13)realplayexe
是Real Networks公司相关程序,Real Player用于播放视频文件,例如MPEG和AVI。
(14)servicesexe
是微软windows *** 作系统的一部分。用于管理启动和停止服务。该进程也会处理在计算机启动和关机时运行的服务。这个程序对你系统的正常运行是非常重要的。
注意:services也可能是w32randexr(储存在%systemroot%\system32\目录)和soberp (储存在%systemroot%\connection wizard\status\目录)木马。该木马允许攻击者访问你的计算机,窃取密码和个人数据。该进程的安全等级是建议立即删除
(15)smssexe
是微软windows *** 作系统的一部分。该进程调用对话管理子系统和负责 *** 作你系统的对话。这个程序对你系统的正常运行是非常重要的。
注意:smssexe也可能是win32ladexa木马。该木马允许攻击者访问你的计算机,窃取密码和个人数据。请注意此进程所在的文件夹,正常的进程应该是在windows的system32和servicepackfiles\i386下面
(16)spoolsvexe
用于将windows打印机任务发送给本地打印机。
注意:spoolsvexe也有可能是backdoorciadoorb木马。该木马允许攻击者访问你的计算机,窃取密码和个人数据。请注意此进程所在的文件夹,正常的进程应该是在windows的system32和servicepackfiles\i386下面。如果出现在spoolsv目录下,则可能一些ie插件的文件,建议使用反间谍进行扫描。
(17)StarWindServiceexe
是Alcohol 120%光盘刻录软件相关程序如果想要禁用此进程:只要在alcohol120%的选项中,去掉自动检查当前版本状态项,然后“开始”-“运行”-servicesmsc,在系统服务中将名为StarWind iSCSI Service的进程设为“禁用”,重启后就不会看到这个进程
(18)svchostexe(6个)
是一个属于微软windows *** 作系统的系统程序,用于执行dll文件。这个程序对你系统的正常运行是非常重要的。
注意:svchostexe也有可能是w32welchiaworm病毒,它利用windowslsass漏洞,制造缓冲区溢出,导致你计算机关机。请注意此进程的名字,还有一个病毒是svch0stexe,名字中间的是数字0,而不是英文字母o。请注意此进程所在的文件夹,正常的进程应该是在windows的system32和servicepackfiles\i386下面
(19)system
是windows页面内存管理进程,拥有0级优先。
(20)system Idle process
它更多用于是显示剩余的cpu资源情况。无法删除该进程。
(21)taskmgrexe
用于windows任务管理器。它显示你系统中正在运行的进程。该程序使用ctrl+alt+del打开,这不是纯粹的系统程序,但是如果终止它,可能会导致不可知的问题。
(22)ULCDRSvrexe
是uleaddvdworkshop相关产品的一部分。该程序用于烧录dvd和cd媒体。这不是纯粹的系统程序,但是如果终止它,可能会导致不可知的问题。
(23)vsmonexe
是ZoneAlarm个人防火墙的一部分。它用于监视网络浏览和对网络攻击进行警报。
(24)winlogonexe
是windows域登陆管理器。它用于处理你登陆和退出系统过程。该进程在你系统的作用是非常重要的。
1 首先来了解一下jstack这个命令的作用,jstack 是一个可以返回在应用程序上运行的各种各样线程的一个完整转储的实用程序,您可以使用它查明问题。jstack [-l] <pid>,jpid可以通过使用jps命令来查看当前Java程序的jpid值,-l是可选参数,它可以显示线程阻塞/死锁情况。
/
死锁例子
@author craneding
@since 2011-3-20
/
public class DeadLock {
public static void main(String[] args) {
final Object obj_1 = new Object(), obj_2 = new Object();
Thread t1 = new Thread("t1"){
@Override
public void run() {
synchronized (obj_1) {
try {
Threadsleep(3000);
} catch (InterruptedException e) {}
synchronized (obj_2) {
Systemoutprintln("thread t1 done");
}
}
}
};
Thread t2 = new Thread("t2"){
@Override
public void run() {
synchronized (obj_2) {
try {
Threadsleep(3000);
} catch (InterruptedException e) {}
synchronized (obj_1) {
Systemoutprintln("thread t2 done");
}
}
}
};
t1start();
t2start();
}
}
2 以上DeadLock类是一个死锁的例子,假使在不知情的情况下,运行DeadLock后,发现等了N久都没有在屏幕打印线程完成信息。这个时候就可以使用jps查看该程序的jpid值和使用jstack来生产堆栈结果问题。
$ java -cp deadlockjar DeadLock &
$
$ jps
3076 Jps
448 DeadLock
$ jstack -l 448 > deadlockjstack
结果文件deadlockjstack内容如下:
2011-03-20 23:05:20
Full thread dump Java HotSpot(TM) Client VM (191-b02 mixed mode, sharing):
"DestroyJavaVM" prio=6 tid=0x00316800 nid=0x9fc waiting on condition [0x00000000]
javalangThreadState: RUNNABLE
Locked ownable synchronizers:
- None
"t2" prio=6 tid=0x02bcf000 nid=0xc70 waiting for monitor entry [0x02f6f000]
javalangThreadState: BLOCKED (on object monitor)
at comdemoDeadLock$2run(DeadLockjava:40)
- waiting to lock <0x22a297a8> (a javalangObject)
- locked <0x22a297b0> (a javalangObject)
Locked ownable synchronizers:
- None
"t1" prio=6 tid=0x02bce400 nid=0xba0 waiting for monitor entry [0x02f1f000]
javalangThreadState: BLOCKED (on object monitor)
at comdemoDeadLock$1run(DeadLockjava:25)
- waiting to lock <0x22a297b0> (a javalangObject)
- locked <0x22a297a8> (a javalangObject)
Locked ownable synchronizers:
- None
"Low Memory Detector" daemon prio=6 tid=0x02bb9400 nid=0xa6c runnable [0x00000000]
javalangThreadState: RUNNABLE
Locked ownable synchronizers:
- None
"CompilerThread0" daemon prio=10 tid=0x02bb2800 nid=0xcb8 waiting on condition [0x00000000]
javalangThreadState: RUNNABLE
Locked ownable synchronizers:
- None
"Attach Listener" daemon prio=10 tid=0x02bb1000 nid=0x7f4 waiting on condition [0x00000000]
javalangThreadState: RUNNABLE
Locked ownable synchronizers:
- None
"Signal Dispatcher" daemon prio=10 tid=0x02bd2800 nid=0xd80 runnable [0x00000000]
javalangThreadState: RUNNABLE
Locked ownable synchronizers:
- None
"Finalizer" daemon prio=8 tid=0x02bab000 nid=0xe1c in Objectwait() [0x02d3f000]
javalangThreadState: WAITING (on object monitor)
at javalangObjectwait(Native Method)
- waiting on <0x229e1148> (a javalangrefReferenceQueue$Lock)
at javalangrefReferenceQueueremove(ReferenceQueuejava:118)
- locked <0x229e1148> (a javalangrefReferenceQueue$Lock)
at javalangrefReferenceQueueremove(ReferenceQueuejava:134)
at javalangrefFinalizer$FinalizerThreadrun(Finalizerjava:159)
Locked ownable synchronizers:
- None
"Reference Handler" daemon prio=10 tid=0x02ba6800 nid=0xbe0 in Objectwait() [0x02cef000]
javalangThreadState: WAITING (on object monitor)
at javalangObjectwait(Native Method)
- waiting on <0x229e1048> (a javalangrefReference$Lock)
at javalangObjectwait(Objectjava:485)
at javalangrefReference$ReferenceHandlerrun(Referencejava:116)
- locked <0x229e1048> (a javalangrefReference$Lock)
Locked ownable synchronizers:
- None
"VM Thread" prio=10 tid=0x02b6a400 nid=0x568 runnable
"VM Periodic Task Thread" prio=10 tid=0x02bc8400 nid=0x75c waiting on condition
JNI global references: 878
Found one Java-level deadlock:
=============================
"t2":
waiting to lock monitor 0x02baaeec (object 0x22a297a8, a javalangObject),
which is held by "t1"
"t1":
waiting to lock monitor 0x02baa2bc (object 0x22a297b0, a javalangObject),
which is held by "t2"
Java stack information for the threads listed above:
===================================================
"t2":
at comdemoDeadLock$2run(DeadLockjava:40)
- waiting to lock <0x22a297a8> (a javalangObject)
- locked <0x22a297b0> (a javalangObject)
"t1":
at comdemoDeadLock$1run(DeadLockjava:25)
- waiting to lock <0x22a297b0> (a javalangObject)
- locked <0x22a297a8> (a javalangObject)
Found 1 deadlock
3从这个结果文件看到发现了一个死锁,具体是线程t2在等待线程t1,而线程t1在等待线程t2造成的,同时也记录了线程的堆栈和代码行数,通过这个堆栈和行数就可以去检查对应的代码块,从而发现问题和解决问题。
linux修改进程名得用prctl。
其实flume启动停止可以自己写个脚本,记录pid不就可以查看了。可以参照脚本启动jar自己写个。flume各个agent名字不是不一样么,监控上面不是可以看的出来。
以上就是关于编写一个短信编辑与发送界面Java程序全部的内容,包括:编写一个短信编辑与发送界面Java程序、什么是java process snapshot、怎样把JPS形式文件转换成表格形式或WORD等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)