java.net.SocketInputStream.read(Unknown Source) 这是什么错误?
2个回答
推荐于2018-04-12 · 知道合伙人数码行家
关注
展开全部
出现Unknown Source的原因是在编译时没有指定相应的选项。
当通过javac编译时,默认相当于指定-g:source,lines,这样编译出来的class文件中会包含源代码和行号信息;而通过ant编译时,默认相当于指定-g:none,这样编译出来的class文件会比较小,但是不包含任何调试信息,所以出错的时候就会打印出上面的错误堆栈信息。
以下列出了用不同的-g参数编译同一java文件并运行的效果:
-g:none
Exception in thread "main" java.lang.RuntimeException
at Test.main(Unknown Source)
-g:source
Exception in thread "main" java.lang.RuntimeException
at Test.main(Test.java)
-g:source,lines
Exception in thread "main" java.lang.RuntimeException
at Test.main(Test.java:4)
-g:all 或 -g:source,lines,vars
运行效果等价于-g:source,lines,但是反编译生成的class文件,可以看到局部变量名也能正常的识别出应该根据程序的部署环境来更改编译参数,比如server端的代码应该加上-g:source,lines,以便通过日志文件正确分析。
当通过javac编译时,默认相当于指定-g:source,lines,这样编译出来的class文件中会包含源代码和行号信息;而通过ant编译时,默认相当于指定-g:none,这样编译出来的class文件会比较小,但是不包含任何调试信息,所以出错的时候就会打印出上面的错误堆栈信息。
以下列出了用不同的-g参数编译同一java文件并运行的效果:
-g:none
Exception in thread "main" java.lang.RuntimeException
at Test.main(Unknown Source)
-g:source
Exception in thread "main" java.lang.RuntimeException
at Test.main(Test.java)
-g:source,lines
Exception in thread "main" java.lang.RuntimeException
at Test.main(Test.java:4)
-g:all 或 -g:source,lines,vars
运行效果等价于-g:source,lines,但是反编译生成的class文件,可以看到局部变量名也能正常的识别出应该根据程序的部署环境来更改编译参数,比如server端的代码应该加上-g:source,lines,以便通过日志文件正确分析。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询