如何取的Java源代码文件中文件名和行号:)

在C/C++的程序,编译器提供了两个宏来支持取得源文件中的行号和文件名,这两个宏是__FILE__,__LINE__

你可以如下的方法打印行号和文件名

查看源代码

打印帮助

1    #include

2    int main()

3    {

4     fprintf(stdout,"[%s:%d] Hello World!",__FILE__,__LINE__);

5     return 0;

6    }

但是在JAVA下没有这两个宏,那么我们如何来取得文件名和行号,翻阅JDK,我们找到StackTraceElement这个类。这个类可以从Throwable取得,另外也可以从Thread类取得,通过这些我写如下的一个打印行号的测试程序:

查看源代码

打印帮助

01    public class LineNo {

02     public static int getLineNumber() {

03     return Thread.currentThread().getStackTrace()[2].getLineNumber();

04     }

05

06     public static String getFileName() {

07     return Thread.currentThread().getStackTrace()[2].getFileName();

08     }

09     public static void main(String args[]) {

10     System.out.println("["+getFileName()+":"+ getLineNumber()+"]"+"Hello World!");

11     }

12    }

留下一个问题,上面程序中的magic数字 2 代表什么含义呢?

0是thread.getCurrentThread() 1是getLineNumber() 2才是调用getLineNumber的类

java获取文件中的行号_如何取的Java源代码文件中文件名和行号相关推荐

  1. Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几

    Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几 //获得入参的日期 Calendar cd = Calendar.getInstance(); cd.setTime(date ...

  2. python关于文件的编程题_《Python编程》源代码文件

    压缩包 : bbc59749e0028c3f1ab3a1c9a762a6d.rar 列表 <Python编程>源代码文件/.gitignore <Python编程>源代码文件/ ...

  3. python返回文件行号_用python比较两个文件中内容的不同之处, 并输出行号和内容....

    '''cmpfile.py - 比对两个文件, 如果有不同之处, 打印内容和行号''' import os class cmpFile: def __init__(self, file1, file2 ...

  4. python统计行号_用Python实现两个文件的不同行的编号

    title: 文件不同行 tags: python,IO,dict 比较两个文件在哪些行内容不同,返回这些行的编号,行号编号从1开始. 定义统计文件行数的函数 # 统计文件个数def statLine ...

  5. java中错误的源文件_如果我的Java源文件中存在语法错误,为什么Eclipse会生成.class文件?...

    当我使用 Eclipse IDE创建项目时,即使我的代码中存在语法错误,它也会生成一个类文件? class Test { public void test(String value) { System ...

  6. java中git使用教程_【教程】Git在Eclipse中的安装和基本使用

    一.安装 点击 Help->Install New Software->add 安装地址为:http://download.eclipse.org/egit/updates/ 选择插件 点 ...

  7. java中二进制怎么说_面试:说说Java中的 volatile 关键词?

    volatile 这个关键字可能很多朋友都听说过,或许也都用过.在 Java 5 之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在 Java 5之后,volatile 关 ...

  8. python读json文件中不同的数据类型_怎么使用python提取json文件中的字段

    python中为什么用json有什么作用 python的json模块中如何将变量添加到里面 python的json模块第一个是要打开的文件,第二个是打开的操作,为什么会如果你早认清你在别人心中没那么重 ...

  9. Java中的变量分类_开发简单的Java应用

    第一章 开发简单的Java应用 1.Java语言的技术分类 (1)JavaSE:标准版,开发桌面应用 (2)JavaEE:企业版,Web应用 (3)JavaME:小型版,嵌入式 2.如何开发和运行Ja ...

最新文章

  1. 用函数制作简单的选项卡
  2. 实战:基于深度学习的道路损坏检测
  3. 艾伟:详解AJAX核心 —— XMLHttpRequest 对象 (下)
  4. vue if判断_vue循环判断
  5. HTML5 创建热点图
  6. 宝塔修改Nginx服务器类型,宝塔面板nginx更改日志格式的方法
  7. oracle dba create view 失败 解决办法
  8. Sizzle.selectors.relative [ 源代码分析 ]
  9. Android Camera setRecordingHint函数 在部分手机上的问题。
  10. lua游戏脚本自动打怪_了解Lua(官方文档翻译)
  11. Latex:使用时遇到的一些问题解决
  12. Unity资源加载简析(二)AssetsBundle
  13. 2022搜狐校园 情感分析 × 推荐排序 算法大赛
  14. 暑假如何高效保护视力?保护视力的智能台灯
  15. 转:“有活吗?我们什么都干!”稻盛和夫这样带企业穿越萧条
  16. [转]李商隐《嫦娥》赏析
  17. Flutter中的Isolate的个人理解
  18. 插入排序(直接插入排序,折半插入排序,希尔排序)
  19. ATF官方文档翻译(二):Authentication Framework Chain of Trust(身份验证框架和信任链)(1)
  20. 杂-格签名中常见数字的意义

热门文章

  1. 95-190-032-源码-window-CountWindow
  2. 【Java】java中this$0 this$1 this$2
  3. 【安全】安装phpLDAPadmin管理LDAP
  4. 08-R包那么多,怎么才能快速找到自己需要的包呢?
  5. java instant获取微秒转成日期格式_Java8新特性时间日期库DateTime API及示例
  6. 请不要“妖魔化”外包岗位!
  7. 经过两个月的面试,我给你整理了这些面试考点(Java版)
  8. JDK15已发布,快来看看有哪些值得期待的新功能!
  9. 节前福利:Java程序员面试宝典升级版
  10. leetcode题解53-最大子序和