Java Tips - 利用RuntimeException().getStackTrace()推断出当前执行流中的某个类

以下是SpringFramework的代码,推断出当前有main方法的类对象

    private Class<?> deduceMainApplicationClass() {
        try {
            StackTraceElement[] stackTrace = new RuntimeException().getStackTrace();
            for (StackTraceElement stackTraceElement : stackTrace) {
                if ("main".equals(stackTraceElement.getMethodName())) {
                    return Class.forName(stackTraceElement.getClassName());
                }
            }
        }
        catch (ClassNotFoundException ex) {
            // Swallow and continue
        }
        return null;
    }
时间: 2024-10-19 06:51:36

Java Tips - 利用RuntimeException().getStackTrace()推断出当前执行流中的某个类的相关文章

Java ClassLoader基础及加载不同依赖 Jar 中的公共类

本文主要介绍 ClassLoader 的基础知识,ClassLoader 如何动态加载 Jar,ClassLoader 隔离问题及如何加载不同 Jar 中的公共类. 本文工程开源地址见:Java Dynamic Load Jar@Github,Clone 以后直接以 Java Application去运行 java-dynamic-loader-host 工程即可. 其实本文只是 Android 插件化的一个引子,做过 Android 插件化的同学,可以试试对于 Android Support

Java ClassLoader基础及加载不同依赖 Jar 中的公共类(转)

http://www.iteye.com/topic/1135259 http://www.trinea.cn/android/java-loader-common-class/   http://www.trinea.cn/android/performance/

Java实现利用搜索引擎收集网址的程序

程序|搜索引擎         我这里讲的不是怎么使用搜索引擎,而是怎么让程序利用搜索引擎来搜集网址,这有什么用?很有用!网上动辄有人叫卖网址数据库,如发布软件网址.邮件地址.论坛网址.行业网址,这些网址是怎么来的呢?不可能是人手工收集而来的,都是让程序利用搜索引擎取到的,如果您需要某类网址信息数据,就跟我来一起研究一下,非常简单. 本文采用Java语言写成,以google和百度搜索引擎为对象. 我们要利用google.百度搜索引擎的搜索规则中的两条,关键字搜索和inurl搜索.什么是inurl

在Java下利用log4j记录日志的方法_java

1.前言 log4j是一个用Java编写的可靠,快速和灵活的日志框架(API),它在Apache软件许可下发布. Log4j已经被移植到了C,C++,C#,Perl,Python和Ruby等语言中. Log4j是高度可配置的,并可通过在运行时的外部文件配置.它根据记录的优先级别,并提供机制,以指示记录信息到许多的目的地,例如:数据库,文件,控制台,UNIX系统日志等. Log4j中有三个主要组成部分:     loggers: 负责捕获记录信息.     appenders : 负责发布日志信息

捕获Java线程池执行任务抛出的异常

捕获Java线程池执行任务抛出的异常Java中线程执行的任务接口java.lang.Runnable 要求不抛出Checked异常, public interface Runnable { public abstract void run(); } 那么如果 run() 方法中抛出了RuntimeException,将会怎么处理了? 通常java.lang.Thread对象运行设置一个默认的异常处理方法: java.lang.Thread.setDefaultUncaughtExceptionH

用JAVA将大图片文件转换出小的缩略图文件

缩略图|转换 用JAVA将大图片文件转换出小的缩略图文件,要求使用JDK1.4,大家可以将这段程序代码改为JavaBean,以便在WEB环境中使用,转换出的小缩略图效果不错! import javax.imageio.ImageIO;import javax.imageio.IIOException;import java.awt.image.BufferedImage;import java.awt.Image;import java.io.File;import java.awt.image

PS利用抽出滤镜抠出极细的发丝

  PS利用抽出滤镜抠出极细的发丝 这款滤如果用习惯了,抠图完胜通道和调整边缘,连极细的发丝都可以无损伤抠出,速度也是极快的.不过抠图的时候一定要在黑白效果中,这样就不会受强制前景色影响,同时涂抹细发丝的时候笔触大小要调到比发丝稍大一点,这样抽出后就不会有杂色. 原图 最终效果   1.点击素材图片打开素材图片大图,右键选择"图片另存为"保存到本机,再用PS打开. 进入通道面板,查看一下各通道,红色通道发丝部分亮度比较均匀,同时发丝也比较白,非常适合;选择红通道,按Ctrl + A 全

Photoshop利用计算命令计算出精确选区调整图片颜色

  本教程主要使用Photoshop详细实例解析计算命令的原理,通过通道利用计算命令计算出精确选区,应用图像命令调整色彩.不同于色相/饱和度.色彩平衡的色彩调整方式. 混合模式是计算命令的灵魂,使用计算命令为选择 不少人常常会问:计算命令的实质究竟是什么? Photoshop帮助文件这样描述计算命令,计算命令使您可以混合两个来自一个或多个源图像的单个通道.然后可以将结果应用到新图像或新通道,或现用图像的选区.不能对复合通道应用计算命令. 它是一个计算过程的描述,这个描述对于能够熟练使用计算命令的

初学java反射的问题 一直抛出classnotfoundexception

问题描述 初学java反射的问题 一直抛出classnotfoundexception public class TestReflection { public static void main(String[] args) { try{ String str = ""T""; Class c = Class.forName(str); c.newInstance(); } catch (ClassNotFoundException e) { e.printStac