有谁知道如何以编程方式找出java类加载器实际加载类的位置?
我经常在大型项目上工作,其中类路径变得非常长并且手动搜索不是真正的选项.我最近遇到了一个问题,类加载器加载了一个不正确的类版本,因为它位于两个不同位置的类路径中.
那么我怎样才能让类加载器告诉我实际的类文件来自磁盘的哪个位置?
编辑:如果由于版本不匹配(或其他东西),类加载器实际上无法加载类,那么我们是否可以找到它在读取之前尝试读取的文件?
我正在编写一个groovy脚本,我希望通过存储在同一文件夹中的属性文件来控制它.但是,我希望能够从任何地方调用此脚本.当我运行脚本时,它总是根据运行的位置查找属性文件,而不是脚本所在的位置.
如何从脚本中访问脚本文件的路径?
我有一个scala应用程序,该应用程序处理来自的某些目录中的二进制文件resources。我想得到这个目录,java.io.File并列出所有内容。在最新的sbt中,我无法直接进行操作。
我已经为我的问题创建了最小的回购协议:
https://github.com/mat646/sbt-resource-bug
sbt 0.13.18及更低版本不会发生此问题。因此,经过一些研究,我发现自sbt 1.0起,设计已更改,并且此问题已在此处解决:
https://github.com/sbt/sbt/issues/3963
所以提供的解决方案是:
1.降级到sbt 0.13(我想避免)
2.提取项目jar本身(我发现这很麻烦,因为我还没有解决-https:// github。 COM / SBT / IO包含gunzip的方法,但对我来说这仍然无法提取我从jar目录,但在这里,我可能误解了如何提取项目JAR嵌套文件)
(以便在SBT 1.0+作品上构建罐子读取文件getResourceAsStream作品完美,但因我的问题而失败)
感谢您提供的帮助和解决方法!
我正在使用Netbeans,我正在使用spring boot开发我的第一个Web应用程序.我将我的htmls,js,css保存在"webapp"文件夹中,然后我重构了我的项目,并将所有静态内容放在/ resources/static中.从那时起,我每次都必须重建我的项目,因为静态内容没有重新加载.
如果我将为Gulp使用浏览器同步插件,我可以轻松绕过这个问题吗?
browser-sync ×1
classloader ×1
classpath ×1
groovy ×1
gulp ×1
java ×1
sbt ×1
scala ×1
spring ×1
spring-boot ×1
static ×1