【发布时间】:2011-12-01 18:28:54
【问题描述】:
我已经使用 ikvmc 成功转换了一个 java 库。 Java 库在其自身的 jar 文件中使用了一些资源。我可以访问这个 java 库的所有类,但是如果我调用一个调用 this.getClass().getResource() 的方法,它不会在程序集中或程序集中的 jar 文件中搜索这些资源。但是如果我将这些资源与程序集放在同一个文件夹中,它可以找到资源。但它并不是每次都能很好地工作。例如,如果我在网站项目 (mvc) 中引用程序集,它就找不到资源。我尝试将这些资源放到 bin 文件夹、根文件夹、视图文件夹等中。(请参阅我对这篇文章的评论)
所以我需要一个永久的解决方案。 java 库是一个开源项目。但我不想改变来源。因为编译项目需要eclipse、ant、3rd party libs等。同样在Java库的下一个版本中,我将不得不更改代码并编译它。
我看到了 ikvmc 的“资源”参数。但我找不到这方面的文档或示例。
现在我将尝试实现一个从调用getResource 方法的java 类派生的.net 类。然后我将覆盖调用 getResource 方法的方法。但这也不是一个永久的解决方案。
【问题讨论】:
-
作为一种解决方法,我在 java 的 Logger 类中添加了一个文件处理程序,因此我将文件跟踪到此文件夹:C:\Program Files (x86)\Common Files\microsoft shared\DevServer\ 10.0 看来,它假定根文件夹为网络服务器的根文件夹。
-
我添加了 -resource 参数,例如“-resource:path/to/file=path/to/file”。但它也没有奏效。我用反射器查看了编译程序集的内部,我看到了“resources.jar”,其中包含我用“-resource”参数添加的文件。但是java类也没有看到这个文件。
标签: .net embedded-resource ikvm