2008-09-26 27 views

Trả lời

198

Tôi có this article được đánh dấu trang trên thiết lập này với Eclipse cho Java 5 trở xuống.

Về cơ bản run it with:

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044 

Đối với Eclipse với Java 5 and above, chạy nó với:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=1044 
403

Trước Java 5.0, sử dụng -Xdebug-Xrunjdwp đối số. Các tùy chọn này sẽ vẫn hoạt động trong các phiên bản sau, nhưng nó sẽ chạy ở chế độ diễn giải thay vì JIT, sẽ chậm hơn.

Từ Java 5.0, nó là tốt hơn để sử dụng tùy chọn -agentlib:jdwp duy nhất:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044 

Options trên -Xrunjdwp hoặc agentlib:jdwp lập luận là:

  • transport=dt_socket: là cách sử dụng để kết nối với JVM (socket là một lựa chọn tốt, nó có thể được sử dụng để gỡ lỗi một máy tính ở xa)
  • address=8000: Cổng TCP/IP tiếp xúc, để kết nối từ trình gỡ lỗi,
  • suspend=y: nếu 'y', yêu cầu JVM đợi cho đến khi trình gỡ lỗi được đính kèm để bắt đầu thực thi, nếu không (nếu 'n'), bắt đầu thực hiện ngay lập tức.
+6

của bạn là chính xác đúng .. Tôi đã thử với ** - Xdebug ** và ** - ** Xrunjdwp nhưng Nó didn' t làm việc. khi tôi đã thử với ** - Xrunjdwp ** hoặc ** agentlib: jdwp ** Nó đang hoạt động.(trên Java 7) – RoboAlex

+0

Điều này chỉ làm việc cho tôi khi tôi đặt dấu ngoặc kép xung quanh nó, nếu không tôi nhận được lỗi này: L ERI: JDWP Máy chủ không vận chuyển dt_socket server = y suspend = y address = 8000 phải có địa chỉ kết nối được chỉ định thông qua ' address = 'option – Ring

+1

Có phải 'Xrunjdwp' không được chấp nhận (hoặc bị xóa?) tại sao chúng ta chọn' agentlib: jdwp' trên nó? – ArtOfWarfare

4

Đối với java 1.5 trở lên:

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName> 

Đối với java 1.4:

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName> 

Đối với java 1.3:

java -Xnoagent -Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName> 

Dưới đây là kết quả từ một chương trình đơn giản:

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044 HelloWhirled 
Listening for transport dt_socket at address: 1044 
Hello whirled 
1

Có rất nhiều vấn đề môi trường nếu bạn đang sử dụng Maven. Vì vậy, nếu bạn bắt đầu chương trình của bạn từ maven, chỉ cần chạy lệnh mvnDebug thay cho mvn và đính kèm trình gỡ lỗi vào cổng 8000. Bạn sẽ xử lý mọi vấn đề môi trường.

Các vấn đề liên quan