Tôi đã viết một lớp java siêu đơn giản mà là ném ngoại lệ như nó phải. Tuy nhiên stack trace tôi nhận trông như sau:"Unknown Source" trong java stack trace, tuy nhiên số dòng là trong tập tin lớp
java.lang.RuntimeException: hello
at Main.go(Unknown Source)
at Main.main(Unknown Source)
Lưu ý: không có số dòng trong stack trace và tôi muốn có được.
Câu trả lời bạn tìm thấy khi giải quyết vấn đề này là thêm thông số chính xác vào thời gian biên dịch để đảm bảo số dòng thực sự đưa nó vào tệp lớp. Tuy nhiên, tôi không tin rằng đó là vấn đề của tôi là tôi có điều này trong build.xml kiến của tôi
<javac
debug="true"
debuglevel="lines,vars,source"
includeAntRuntime="false"
classpathref="classpath.compile"
srcdir="${src.dir}"
destdir="${build.classes}" />
Ngoài ra, theo javap, nó trông giống như những con số đường đã làm cho nó trong:
$ javap -l ./build/classes/Main | head -n 9
public class Main extends java.lang.Object{
public Main();
LineNumberTable:
line 14: 0
line 22: 4
line 23: 15
line 24: 26
Vì vậy, những gì cho? Có một param tôi cần phải thiết lập trong jvm khi tôi chạy mã?
Cảm ơn!
bạn đang chạy các JVM trong chế độ máy chủ, ví dụ: 'java -server'? Ngoài ra, bạn đang chạy ra khỏi jre hoặc cài đặt jdk? – shams
không sử dụng máy chủ và tôi đang sử dụng một jdk – andersonbd1
Tôi không bao giờ nhận ra điều này có thể được đặt trong javac trong Ant ... Tôi đã tự hỏi tại sao stacktraces của tôi đã nhận được ít hữu ích gần đây. : P Đã thay đổi ngay bây giờ và cuộc sống là tốt hơn – Panky