怎么将c#项目转成java?求助大神!

诺丽果 2018-03-01 09:39:50
目前遇到的问题是,想要用java连接热像仪,并进行一些操作,但是厂家没有支持java的sdk,只有c#的,这就涉及了一个问题,对,把C#转成java的,我试了一个用工具转,但是转完以后都是错误,没法调试,而且c#中引用的dll,在java中怎么引用啊,求大神帮帮忙啊!
...全文
1330 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
attilax 2018-03-02
  • 打赏
  • 举报
回复
Atitit 互操作总结 java调用c# 的dll sdk Java的jna可以调用c++的dll。。不能直接调用net dll 。。Netdll和cpp dll机制不同 最简单的方法是使用powershell脚本调用net dll ,把dll sdk api接口转换为 cli命令行接口。。 然后其他语言直接调用命令行接口即可。。 至于其他方法,给net dll 增加com接口啦,增加cli接口都需要编译c#源码麻烦,ide安装体积庞大麻烦。。Powershell脚本则无需编译。比较适合。 参考资料 paip.powershell 使用总结 paip. c++ 调用.net dll 最好方式powershell 使用总结. 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/attilax c++ 调用.net dll ...有几个方法: 1.使用CLR HOST..不过麻烦, 以及只能调用static 方法..无法调用在的方法.pass 2.通过web方式...用绿的iis类似软件...ASPX会自动编译,脚本雅十..麻烦.pass 3.给原来的dll增加com/cli接口,这个要发动vs,要编译,工作量子太大..麻烦...pass.. 4.强烈推荐通过powershell...cli方式调用.. 5.另外一种com方式.就是用JAVASCRIPT写COM组件,js通过powershell调用.net dll..工作量比较大. powershell的优点感受: ----------- 可以直接调用.net dll..这个是哪最大的优点.相当于给.net dll 做磊个cli接口..供其他程序invoke 变量定义ms php的不错.. 直接回显也不错.. ide以及帮助文档: ---------- C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell_ise.exe 不过好像ide基于.net3.5的.. 帮助文档:C:\WINDOWS\Help\WindowsPowerShellHelp.chm 路径空格的处理 ----------------- 外部调用PowerShell.exe和以参数形式执行脚本文件时,路径和文件名中不能包含空格。解析过程中空格前后被截断,只是把前面部分作为脚本文件名,这显然是错误。可以使用单引号包含带空格的路径或文件名, 前面使用执行操作符(&),最外面在加个双引号: C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe "&'C:\Documents and Settings\Administrator\桌面\atips.ps1'" halo world: -------------- 直接 "halo ,world" ...不用石麻print命令.方便阿. 关闭回显 ----------- [void]"halo" import加载dll ------------ [void][System.Reflection.Assembly]::LoadFile("D:\0aiwenzi yjm\demo\bin\Debug\MOLEI.dll") 建立对象 ----------- $number=New-Object System.Random $s=New-Object MOLE.str 执行完成后不要关闭 ------------------- 增加。-NOEXIT 参数 例子 ------------ $number=New-Object System.Random #$number.NextDouble() [void][System.Reflection.Assembly]::LoadFile("D:\0aiwenzi yjm\demo\bin\Debug\MOLEI.dll") $s=New-Object MOLE.str $s.UrlPara="c=12&a=00" $s.GetUrlPara("asc") [void]"halo" 参考 Read more: Windows PowerShell 2.0创建调用脚本文件 - 天行健@中国元素 - 博客园 http://www.cnblogs.com/fuhj02/archive/2010/11/30/1891649.html#ixzz2fcM8I3S1 2013-09-22 14:27 43,631 .NET CLR Hosting 簡介.htm 2013-09-22 14:28 80,180 .Net CLR Hosting原理及实践_.Net博文_CS程序员之窗.htm 2013-09-22 14:48 78,118 .NET Remoting - 维基百科,自由的百科全书.htm 2013-09-22 14:38 32,445 C++手动加载CLR运行托管程序(CLR Hosting)_Linux编程_Linux公社-Linux系统门户网站.htm 2013-09-22 18:20 20,336 C++程序中调用exe可执行文件 - 简简单单 - 博客频道 - CSDN.NET.htm 2013-09-22 18:43 27,712 c++调用shell 或者dos命令—使用system函数 - ddkxddkx的专栏 - 博客频道 - CSDN.NET.htm 2013-09-22 19:05 18,444 Linux下QT中执行shell命令 - zhangjs0322的专栏 - 博客频道 - CSDN.NET.htm 2013-09-22 19:06 19,343 Linux下Qt程序实现对shell命令的执行_sam kwok's space_百度空间.htm 2013-09-22 16:26 69,674 New-Object 找不到类型 [MOLE.str] 请确保已加载包含此类型的程序集。_百度搜索.htm 2013-09-22 16:16 145,093 New-Object 帮助信息-PowerShell-ChinaUnix博客.htm 2013-09-22 16:30 21,448 path space直接双击运行PowerShell的脚本文件.ps1(更新)_六翼刺猬的某某刺猬窝_百度空间.htm 2013-09-22 16:45 28,902 Powershell 变量 - Sai~ - 博客园.htm 2013-09-22 17:17 38,007 Powershell 定义变量 PowerShell 中文博客.htm 2013-09-22 16:27 39,408 PowerShell命令输出的控制方法 - 51CTO.COM.htm 2013-09-22 17:18 157,775 PowerShell教程 - 博客搬往 http begtostudy.cnblogs.com - 博客频道 - CSDN.NET.htm 2013-09-22 19:48 24,969 QProcess - 山庄来客的专栏 - 博客频道 - CSDN.NET.htm 2013-09-22 19:52 43,715 QProcess学习_yi_yuan_1988_新浪博客.htm 2013-09-22 19:52 63,124 QT QProcess执行cmd Shell命令并取得输出信息 - 小猪的日志 - 网易博客.htm 虚拟主机,域名注册,双线虚拟主机,服务器租赁,为7万用户提供服务.htm 2013-09-22 18:24 19,724 ShellExecuteEx的用法 - jiangsok的博客 - 博客频道 - CSDN.NET.htm 2013-09-22 15:46 76,202 Windows Power Shell_百度百科.htm 2013-09-22 18:48 34,772 Windows PowerShell 2.0创建调用脚本文件 - 天行健@中国元素 - 博客园.htm 2013-09-22 16:34 43,856 Windows PowerShell 的新增功能 - 51CTO.COM.htm 2013-09-22 16:34 42,116 Windows PowerShell的12项酷功能 - 51CTO.COM.htm 2013-09-22 15:37 161,774 Windows 管理框架 (Windows PowerShell 2.0、 WinRM 2.0 和BITS 4.0).htm 2013-09-22 17:17 41,022 回显PowerShell 函数返回值的问题 Solo Estoy.htm 2013-09-22 16:33 42,155 如何使用Windows PowerShell控制活动目录(1) - 51CTO.COM.htm 2013-09-22 16:03 21,474 学习PowerShell遇到的第一个问题 因为在此系统中禁止执行脚本--转自网络_账号居然被盗了,发了一堆垃圾文章_百度空间.htm 2013-09-22 14:40 80,172 将托管dll注入到非托管进程中 - 残梦飘雪的日志 - 网易博客.htm 2013-09-22 17:17 404,871 探索PowerShell(七) PowerShell变量_PowerShell_脚本之家.mht 2013-09-22 16:32 42,882 有关PowerShell脚本你必须知道的十个基本概念 - 51CTO.COM.htm 2013-09-22 16:34 20,325 自动化PowerPoint_程序人生_百度空间.htm 2013-09-22 15:37 93,166 请问有没有脚本语言或者shell能够调用.net的dll?.htm
2081 2018-03-02
  • 打赏
  • 举报
回复
用C#写成服务 再用java调服务嘛
by_封爱 版主 2018-03-02
  • 打赏
  • 举报
回复
引用 3 楼 weixin_39309867 的回复:
[quote=引用 1 楼 diaodiaop 的回复:] 大哥别闹了 ......
你是第一回听说这种的是吗?你是不知道有这种操作?[/quote] "转"这种东西 你觉得靠谱吗? 如果这么容易..那Java程序员还值钱吗? 进程通讯是好的解决方案.. 官方不是提供C#的Demo吗 做成服务 发布接口(tcp/ip或者http).. 然后其他任何语言 都可以调用了. 对于你这种情况 我觉得这个是最好的解决方案了.
threenewbee 2018-03-01
  • 打赏
  • 举报
回复
怎么用电脑自动生成一个程序,对不起,我们雇不起程序员。
诺丽果 2018-03-01
  • 打赏
  • 举报
回复
引用 8 楼 From_TaiWan 的回复:
[quote=引用 6 楼 weixin_39309867 的回复:] [quote=引用 4 楼 From_TaiWan 的回复:] 没法调试,而且c#中引用的dll,在java中怎么引用啊,求大神帮帮忙啊! ==> 那你得懂Java编程才行 用工具转换,可能性不到,多找找吧 厂家没有支持java的sdk,只有c#的 ==> 有点迷糊,有C#不就对了吗 你到底是懂Java还是C#
无语,客户需求是用B/S架构写,是java!我的问题是描述的不清楚吗?[/quote]哦,没看清,习惯性的认为都是用C#写东西 那尝试用Java调用C#的dll 请参考http://7wolfs.iteye.com/blog/2043835 [/quote] 好,我试试
秋的红果实 2018-03-01
  • 打赏
  • 举报
回复
引用 6 楼 weixin_39309867 的回复:
[quote=引用 4 楼 From_TaiWan 的回复:] 没法调试,而且c#中引用的dll,在java中怎么引用啊,求大神帮帮忙啊! ==> 那你得懂Java编程才行 用工具转换,可能性不到,多找找吧 厂家没有支持java的sdk,只有c#的 ==> 有点迷糊,有C#不就对了吗 你到底是懂Java还是C#
无语,客户需求是用B/S架构写,是java!我的问题是描述的不清楚吗?[/quote]哦,没看清,习惯性的认为都是用C#写东西 那尝试用Java调用C#的dll 请参考http://7wolfs.iteye.com/blog/2043835
xuzuning 2018-03-01
  • 打赏
  • 举报
回复
是否能直接引用,那得 Java 高手说了算。我的水平只能重编译
诺丽果 2018-03-01
  • 打赏
  • 举报
回复
引用 4 楼 From_TaiWan 的回复:
没法调试,而且c#中引用的dll,在java中怎么引用啊,求大神帮帮忙啊! ==> 那你得懂Java编程才行 用工具转换,可能性不到,多找找吧 厂家没有支持java的sdk,只有c#的 ==> 有点迷糊,有C#不就对了吗 你到底是懂Java还是C#
无语,客户需求是用B/S架构写,是java!我的问题是描述的不清楚吗?
诺丽果 2018-03-01
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
这个问题应到 Java 讨论区求解 反编译 C# 的 dll,将反编译出的 C# 代码拿到 Java 中编译,按提示改错。都是机械性工作,繁琐但不难
已经在java板块发帖了,c#的dll还需要反编译吗?不能直接引用吗?
秋的红果实 2018-03-01
  • 打赏
  • 举报
回复
没法调试,而且c#中引用的dll,在java中怎么引用啊,求大神帮帮忙啊! ==> 那你得懂Java编程才行 用工具转换,可能性不到,多找找吧 厂家没有支持java的sdk,只有c#的 ==> 有点迷糊,有C#不就对了吗 你到底是懂Java还是C#
诺丽果 2018-03-01
  • 打赏
  • 举报
回复
引用 1 楼 diaodiaop 的回复:
大哥别闹了 ......
你是第一回听说这种的是吗?你是不知道有这种操作?
xuzuning 2018-03-01
  • 打赏
  • 举报
回复
这个问题应到 Java 讨论区求解 反编译 C# 的 dll,将反编译出的 C# 代码拿到 Java 中编译,按提示改错。都是机械性工作,繁琐但不难
by_封爱 版主 2018-03-01
  • 打赏
  • 举报
回复
大哥别闹了 ......
wanghui0380 2018-03-01
  • 打赏
  • 举报
回复
其实现在软件设计早就是混合模式,分布模式,微服务模式了,也不必强行要求“从一而终”。 假设我这个什么热成像仪就是一个独立在外的微服务,有问题么?这就没问题了,反正我独立在外,我就是用python写他也没问题
wanghui0380 2018-03-01
  • 打赏
  • 举报
回复
还是进程间通讯把,你这玩法不仅困难,还未知。 当然你可以先编译成com,然后给java调用看看,你只能祈祷他一次能过
大鱼> 2018-03-01
  • 打赏
  • 举报
回复
引用 7 楼 xuzuning 的回复:
是否能直接引用,那得 Java 高手说了算。我的水平只能重编译
别逗人家了,难道还要给Java装个.net framework 才能用么
  • 打赏
  • 举报
回复
引用 12 楼 weixin_39309867 的回复:
[quote=引用 11 楼 xomix 的回复:] 讲真,C#调JAVA,JAVA调C#都有…………
具体怎么操作知道吗[/quote]楼上不是有JAVA调C#吗?反向的你百度一下就好了。
诺丽果 2018-03-01
  • 打赏
  • 举报
回复
引用 11 楼 xomix 的回复:
讲真,C#调JAVA,JAVA调C#都有…………
具体怎么操作知道吗
  • 打赏
  • 举报
回复
讲真,C#调JAVA,JAVA调C#都有…………
正怒月神 2018-03-01
  • 打赏
  • 举报
回复
不知道,我是没这么干过。

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧