2011-11-04 57 views
0

我希望這是正確的地方問這個,我正在運行JAVA 7的Windows 64位 。我正在使用cygwin作爲終端。每當我嘗試停止正在進行的程序時,我都按下control-break,通常這會將作業發送到後臺,但是我正在接收以下線程轉儲。控制中斷不工作在java中使用cygwin

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) 

有什麼我需要改變,使控制中斷髮送工作的背景。

非常感謝

回答

1

如果用CYGWIN=tty運行或使用的xterm/rxvt的,那麼你會得到Cygwin的控制,中斷處理。如果您使用標準的Cygwin或CMD.EXE shell,那麼您將獲得Java Control-Break處理。

+0

我怎樣才能得到CYGWIN = tty –

+0

@JulioDiaz這個鏈接可能有幫助:http://cygwin.com/cygwin-ug-net/setup-env.html – Neil

+1

'CYGWIN = tty'選項在2月份被刪除2012】(http://cygwin.com/ml/cygwin-announce/2012-02/msg00008.html)。這仍然適用於舊的Cygwin版本,但是對於最近的Cygwin安裝,一切都應該可以直接使用。 –