use*_*735 6 java bytecode private strictfp javassist
鉴于Java应用程序是在考虑性能的情况下编写的(即在源代码中故意不将方法声明为'strictfp'),是否可以允许用户以strictfp模式运行整个应用程序?
看起来粗略的方法是使用使用javassist编写的自定义类加载器简单地将"strictfp"属性添加到所有类的所有方法.这类似于:
http://www.verious.com/qa/no-strictfp-in-scala-workarounds/
但是,类加载器需要将strictpf属性添加到应用程序中的所有类方法,包括私有方法.(该应用程序太大而且非常复杂,无法显式列出可能需要strictfp属性的所有可能方法.)
javassist中的反射API似乎不支持列出私有方法:
http://www.csg.ci.iu-tokyo.ac.jp/~chiba/javassist/html/javassist/CtClass.html#getMethods()
我想在javassist中做什么(或者通过自定义类加载器方法)?
我不知道这是否对您有帮助,但如果您可以更改为使用 Oracle JRockit JVM,它有一个strictfp全局启用的 JVM 选项 - '-XX+:-StrictFP`
(Hotspot JVM 上有一个“-XX+:-UseStrictFP”选项,但它会产生与您想要的相反的效果。)
参考: