【问题标题】:Force IKVMC Conversion of JARs to DLL?强制 IKVMC 将 JAR 转换为 DLL?
【发布时间】:2012-08-01 16:12:23
【问题描述】:

我正在尝试使用 IKVMC 将我们研究人员使用的一些“开箱即用”JAR 文件转换为我可以在 C# 项目中使用的 DLL。虽然我能够为某些 JAR 成功完成此操作——包含 Main() 方法的 JAR 被转换为 .exe 文件(如 IKVMC 中所述)。我不知道如何处理这些。

有谁知道我该怎么做:

  1. 在我的 C# 应用程序中使用输出 EXE
  2. 让 IKVMC 将 JAR 生成到 DLL 中,尽管 JAR 包含 Main() 方法

IKVMC 命令提示符输出:

ikvmc xom.jar
Note IKVMC0004: using main class "nu.xom.Info" based on jar mainfest
Note IKVMC0002: output file is "xom.exe"

【问题讨论】:

  • .exe 应该是一个和其他任何程序集一样的程序集。您是否刚刚尝试将其放入您的项目中?
  • @millimoose 在下面的答案中查看我的评论。谢谢您的帮助。如果我最终可以避免它,我想获得 JAR 中的类/对象而不是 EXE——因为并非所有代码都需要。

标签: c# java .net jar


【解决方案1】:

EXE 文件只是带有入口点的 DLL。您可以像引用外部 DLL 文件一样在 C# 项目中引用 EXE。

【讨论】:

  • 绝对正确。当我启动 IronPython、导入应用程序的 .exe 程序集并继续重新混合主循环时,我几乎让我的同事大吃一惊,以便它以与编译后的 main() 不同的顺序执行操作。
  • @mike-atlas 我能够添加 EXE——但我最终也弄清楚了如何强制 IKVMC 将 JAR 转换为 DLL。只需在命令行参数中添加-target:library即可。
【解决方案2】:

要强制 IKVMC 输出到 DLL,请将 -target:library 添加到命令行参数。

ikvmc -target:library xom.jar

偶然发现了答案:Using Java Classes in your .NET Application

【讨论】:

    【解决方案3】:

    我知道这已经回答了,但是如果您想控制 dll 的名称并扩展 bharris9 的答案,那么您可以使用 out 参数。

    ikvmc -out:myapp.dll -target:library xom.jar
    

    来源:http://www.ikvm.net/userguide/ikvmc.html#Options

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-17
      • 2011-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-19
      相关资源
      最近更新 更多