2011-11-04 2 views
0

이 질문을하기에 적합하다고 생각합니다. Windows 용 64 비트 용 Java 7을 실행하고 있습니다. Cygwin을 터미널로 사용하고 있습니다. 진행중인 프로그램을 멈추려고 할 때마다 나는 control-break를 누른다. 보통이 작업은 백그라운드로 보내지 만 다음 스레드 덤프를 얻는다.cygwin을 사용하여 Java에서 Control-Break가 작동하지 않습니다.

Full thread dump Java HotSpot(TM) 64-Bit Server VM (21.0-b17 mixed mode): 

"Service Thread" daemon prio=6 tid=0x0000000007504800 nid=0x7c5c runnable [0x0000000000000000] 
    java.lang.Thread.State: RUNNABLE 

"C2 CompilerThread1" daemon prio=10 tid=0x00000000074ff800 nid=0xd66c waiting on condition [0x0000000000000000] 
    java.lang.Thread.State: RUNNABLE 

"C2 CompilerThread0" daemon prio=10 tid=0x00000000074f9000 nid=0x5ce8 waiting on condition [0x0000000000000000] 
    java.lang.Thread.State: RUNNABLE 

"Attach Listener" daemon prio=10 tid=0x00000000074f8000 nid=0x45ec runnable [0x0000000000000000] 
    java.lang.Thread.State: RUNNABLE 

"Signal Dispatcher" daemon prio=10 tid=0x00000000074f7000 nid=0x40a8 waiting on condition [0x0000000000000000] 
    java.lang.Thread.State: RUNNABLE 

"Finalizer" daemon prio=8 tid=0x0000000007472000 nid=0xd978 in Object.wait() [0x000000000809e000] 
    java.lang.Thread.State: WAITING (on object monitor) 
     at java.lang.Object.wait(Native Method) 
     - waiting on <0x0000000788760dc0> (a java.lang.ref.ReferenceQueue$Lock) 
     at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135) 
     - locked <0x0000000788760dc0> (a java.lang.ref.ReferenceQueue$Lock) 
     at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151) 
     at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:177) 

"Reference Handler" daemon prio=10 tid=0x0000000007469800 nid=0x6db8 in Object.wait() [0x0000000007d3e000] 
    java.lang.Thread.State: WAITING (on object monitor) 
     at java.lang.Object.wait(Native Method) 
     - waiting on <0x0000000788760720> (a java.lang.ref.Reference$Lock) 
     at java.lang.Object.wait(Object.java:503) 
     at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133) 
     - locked <0x0000000788760720> (a java.lang.ref.Reference$Lock) 

"main" prio=6 tid=0x000000000046b800 nid=0x1b68 runnable [0x00000000021ef000] 
    java.lang.Thread.State: RUNNABLE 
     at java.io.FileInputStream.readBytes(Native Method) 
     at java.io.FileInputStream.read(FileInputStream.java:242) 
     at java.io.BufferedInputStream.read1(BufferedInputStream.java:273) 
     at java.io.BufferedInputStream.read(BufferedInputStream.java:334) 
     - locked <0x0000000780413290> (a java.io.BufferedInputStream) 
     at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283) 
     at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325) 
     at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177) 
     - locked <0x00000007804153a8> (a java.io.InputStreamReader) 
     at java.io.InputStreamReader.read(InputStreamReader.java:184) 
     at java.io.BufferedReader.fill(BufferedReader.java:154) 
     at java.io.BufferedReader.readLine(BufferedReader.java:317) 
     - locked <0x00000007804153a8> (a java.io.InputStreamReader) 
     at java.io.BufferedReader.readLine(BufferedReader.java:382) 
     at ReadSim.DoJAligner(ReadSim.java:280) 
     at ReadSim.getFullSimRead(ReadSim.java:91) 
     at ReadSim.main(ReadSim.java:44) 

"VM Thread" prio=10 tid=0x0000000007460800 nid=0xe610 runnable 

"GC task thread#0 (ParallelGC)" prio=6 tid=0x0000000001d4f000 nid=0x7bd4 runnable 

"GC task thread#1 (ParallelGC)" prio=6 tid=0x0000000001d51000 nid=0xde18 runnable 

"GC task thread#2 (ParallelGC)" prio=6 tid=0x0000000001d52800 nid=0xe1e8 runnable 

"GC task thread#3 (ParallelGC)" prio=6 tid=0x0000000001d54000 nid=0x3490 runnable 

"GC task thread#4 (ParallelGC)" prio=6 tid=0x0000000001d57800 nid=0x9ab0 runnable 

"GC task thread#5 (ParallelGC)" prio=6 tid=0x0000000001d59000 nid=0x2dc0 runnable 

"GC task thread#6 (ParallelGC)" prio=6 tid=0x0000000001d5a000 nid=0x9384 runnable 

"GC task thread#7 (ParallelGC)" prio=6 tid=0x0000000001d5c800 nid=0x6f58 runnable 

"VM Periodic Task Thread" prio=10 tid=0x0000000007517800 nid=0x10378 waiting on condition 

JNI global references: 124 

Heap 
PSYoungGen  total 135552K, used 40883K [0x00000007800b0000, 0x000000078b2b0000, 0x0000000800000000) 
    eden space 93568K, 4% used [0x00000007800b0000,0x000000078045b9a0,0x0000000785c10000) 
    from space 41984K, 88% used [0x0000000788760000,0x000000078aba1298,0x000000078b060000) 
    to space 44352K, 0% used [0x0000000785c10000,0x0000000785c10000,0x0000000788760000) 
PSOldGen  total 262080K, used 65712K [0x0000000680200000, 0x00000006901f0000, 0x00000007800b0000) 
    object space 262080K, 25% used [0x0000000680200000,0x000000068422c000,0x00000006901f0000) 
PSPermGen  total 21248K, used 3452K [0x000000067b000000, 0x000000067c4c0000, 0x0000000680200000) 
    object space 21248K, 16% used [0x000000067b000000,0x000000067b35f398,0x000000067c4c0000) 

작업을 백그라운드로 보내려면 control-break를 변경해야하는 것이 있습니까? 당신이 CYGWIN=tty으로 실행하거나 다음 Cygwin에서 제어 - 브레이크 처리를 얻을 것이다 xterm이/rxvt를 사용하는 경우

답변

1

너무 많은

감사합니다. 표준 Cygwin 또는 CMD.EXE 쉘을 사용하면 Java Control-Break 처리를 받게됩니다.

+0

어떻게 얻을 수있는 청각 장애는 –

+0

이 링크가 도움이 될 수 @JulioDiaz = CYGWIN : – Neil

+1

은'CYGWIN = tty' 옵션이 [월에 제거 http://cygwin.com/cygwin-ug-net/setup-env.html 2012] (http://cygwin.com/ml/cygwin-announce/2012-02/msg00008.html). 이것은 여전히 ​​오래된 Cygwin 버전에서 작동하지만, 최근의 Cygwin 설치에서는 모든 것이 즉시 작동해야합니다. –

관련 문제