java - 当 jar 文件具有各种传出依赖项时,如何使用 IKVMC 将特定 JAR 文件转换为 DLL?

标签 java dll jar ibm-mq ikvm

我正在使用 Websphere MQ。我需要将特定的 JAR 文件转换为 DLL。 Here是来自 WMQ 客户端的 JAR 集合。 Here是列出各种传入和传出依赖项的集合的 JAR 分析器文件。

我要转换的文件是 com.ibm.mq.jar ,它具有以下传出依赖项 -

 com.ibm.mq.commonservice.jar
 com.ibm.mq.headers.jar
 com.ibm.mq.jmqi.jar

问题是我不知道在命令提示符中传递什么命令来转换 jar 而不丢失任何类。

基本上,我需要访问 MQMessage 和 MQMD,它们是 com.ibm.mq.jar 的一部分,但是当我自行转换它时,这些特定的类不会被导入。

我看了一下another similar StackOverflow Question但主要区别在于依赖关系是循环的。

例如,com.ibm.mq.headers.jar 依赖于 com.ibm.mq.jmqi.jar,反之亦然。

最佳答案

我不知道为什么您不阅读我提供的 MQ 链接。

(1) 创建纯“.NET 托管”MQ 应用程序

int openOptions = MQC.MQOO_OUTPUT + MQC.MQOO_FAIL_IF_QUIESCING;
Hashtable qMgrProp = new Hashtable();
qMgrProp.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_MANAGED);  /* very important */
qMgrProp.Add(MQC.HOST_NAME_PROPERTY, "10.10.10.10");
qMgrProp.Add(MQC.CHANNEL_PROPERTY, "TEST.CHL");
qMgrProp.Add(MQC.PORT_PROPERTY, 1414);
qMgrProp.Add(MQC.USER_ID_PROPERTY, "myUserID");

try
{
   MQQueueManager _qMgr = new MQQueueManager("MQA1", qMgrProp);

   MQQueue queue = _qMgr.AccessQueue("TEST.Q", openOptions, null, null, null);

   /* Do whatever you want to do */

   queue.Close();
   _qMgr.Disconnect();
}
catch (MQException mqex)
{
   System.Console.Out.WriteLine("MQTest01 cc=" + mqex.CompletionCode + " : rc=" + mqex.ReasonCode);
}

(2)编译。

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe /nologo /t:exe /r:System.dll /r:"C:\Program Files (x86)\IBM\WebSphere MQ\bin\amqmdnet.dll" /out:bin\Release\Test.exe Test.cs  Properties\AssemblyInfo.cs

(3) 创建存储 Test.exe 的“Test.config”文件(与 Test.exe 一起使用)

<configuration>
  <appSettings>
    <add key="NMQ_MQ_LIB" value="managed"/>
  </appSettings>
</configuration>

(4) 将 3 个文件复制到目标 PC:Test.exe、Test.config 和 amqmdnet.dll,然后运行。您可能需要更新 PATH 环境变量以指向 amqmdnet.dll 所在的目录。这通常是不需要的,但有时 Windows 会变得挑剔。

关于java - 当 jar 文件具有各种传出依赖项时,如何使用 IKVMC 将特定 JAR 文件转换为 DLL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25988538/

相关文章:

java - 有没有类似Android的资源系统的更小规模的?

java - 使用 Math.Commons 库的牛顿-拉夫森方法

java - 我的网站的 Jad 文件下载链接

java - 如何使用 FatJar (Gradle) 创建单个 jar

.net - 在 Inno Setup 中调用 .NET DLL

java - 编辑 jar 文件后没有任何变化

java - Elasticsearch映射: is there a disadvantage in using type text for properties which are keyword by nature?

java - 使用 Ant 预编译 JSP 的最佳方法是什么

C++注入(inject)代码

python - 从 Python 代码构建 .NET DLL?