回答
Java Language Conversion Assistant。可选择安装(至少)Visual Studio 2005标准版。
选择文件/打开/转换/ Java语言转换助手。
请记住手动检查代码后。它会有很多问题。
在Java到C#的转换中有没有其他的选择?我已经成功地使用VS2005将Java代码转换为C#,而不需要太多修改,我非常喜欢它。 – Gant 2009-01-14 14:07:44
它不仅在实现级别有问题,而且也不会以.NET惯用方式设计。我再说一次,手工移植... – 2009-01-14 14:09:41
即使有这样一个工具,我强烈建议您手动进行转换。自动转换器通常忠实地复制代码,但忽略成语 - 因为它们确实很难得到正确的答案。另外,.NET和Java中的泛型之间的差异可能导致两个代码库中的一些非常不同的决定。
真的,你会做得更好的手动。
我同意。我确实看过Java语言转换助手的一个相对较小的项目,转换后所需的清理工作并不比重写所需的工作小得多。 – 2009-01-14 14:10:28
同上,但不止一次,尽管强调警告各自的客户。 – 2009-01-14 15:45:29
微软曾经有过自己的Java到C#转换 - Microsoft Java Language Conversion Assistant 3.0
ikvm暴露在.NET中的Java类。它不是一个转换器,但基于我的经验,我会推荐给任何人从Java到.NET的过渡。
虽然两种语言的语法看起来很相似,但语义却有很大不同。提几个地方两种语言误入歧途
- 泛型,Java的编译一切对象,C#保留了泛型类型
- 例外,Java已经检查异常,C#不
- 匿名类和内类,Java有匿名类和嵌套类,C#都没有。相反,C#有代表和事件。编程模型因此是非常不同的代表,C#具有函数指针的概念,这导致了不同的编程方式。
- 事件,C#具有导致不同编程方式的事件和组件的概念。
- API,将所有语义差异放在一边,两种语言都具有庞大的API,这两者都不是很平常的转换。
换句话说,您将无法自动进行这样的转换。如果更改为C#的原因是能够将您的代码转换为.exe文件,那么Java市场中也有各种选择。
一个很好的使用工具叫做锐化,它是开源的。
这个工具已经被Xamarin团队派生和更新了,他们用它来将Android API转换成C#。它们的副本可以在这里找到:
现在,我测试有形的解决方案(即不是免费的)
,并将它添加一个类助手。但在它之外,结果看起来很好。
的Java:(原创)
public class PackVariableArrays {
private ClassError myerror=new ClassError();
public VariableArrays unpack(String txt) {
VariableArrays pc = new VariableArrays();
Variable lc;
txt=txt.replace("\r\n","\n");
setMyerror(new ClassError());
if (txt==null) {
lc=new Variable();
lc.name="ERV-5: Empty values";
pc.addItem(lc);
return pc;
}
String[] linecode = txt.split(ClassUtil.SEPARATOR2);
int blen = 0;
int tmpint = 0;
int numelement = 9999;
C#(转换)
public class PackVariableArrays {
private ClassError myerror =new ClassError();
public virtual VariableArrays unpack(string txt) {
VariableArrays pc = new VariableArrays();
Variable lc;
txt=txt.Replace("\r\n","\n");
Myerror = new ClassError();
if (txt==null) {
lc=new Variable();
lc.name="ERV-5: Empty values";
pc.addItem(lc);
return pc;
}
string[] linecode = StringHelperClass.StringSplit(txt, ClassUtil.SEPARATOR2, true);
int blen = 0;
int tmpint = 0;
int numelement = 9999;
这是一个简单的情况,但它工作正常。然而,正如我早说的那样,它使用了一个Class Helper(StringHelperClass.StringSplit),这很好,但它并不需要。在它之外,结果代码非常清晰。
你试过XMLVM? 它有一个选项来自动转换为C#这样的:
xmlvm --in=myjar.jar --out=output_dir --target=csharp
最近Xamarin已经移植Android的使用削尖为单声道。检查出this链接。
- 1. 我在哪里可以找到将WMV转换为MP4的库?
- 2. 我在哪里可以找到pushViewController转换列表?
- 3. 我在哪里可以找到C语言的Lisp阅读器?
- 4. 我在哪里可以找到的UIKit
- 5. C#在哪里可以找到System.Windows.Controls.dll
- 6. 我在哪里可以找到16F877A.h?
- 7. 我在哪里可以找到PyBluez API
- 8. 我在哪里可以找到Microsoft.Build.Utilities.v3.5
- 9. 我在哪里可以找到PHPUnit_Extensions_SeleniumTestCase?
- 10. 我在哪里可以找到compojure.html?
- 11. User.find_for_oauth - 我可以在哪里找到它?
- 12. 我在哪里可以找到com.mathworks.jmi包
- 13. 我在哪里可以找到Python类?
- 14. 我在哪里可以找到android-server.apk?
- 15. 我在哪里可以找到org.restlet.android.jar?
- 16. 我在哪里可以找到dict_keys类?
- 17. 我在哪里可以找到System.Linq.Dynamic dll?
- 18. 我在哪里可以找到InlinePageParser类?
- 19. 我在哪里可以找到ConnectivityMonitor()?
- 20. 我在哪里可以找到包org.omg.CosTransactions
- 21. 我在哪里可以找到.NET v1.0.5000.0?
- 22. 我在哪里可以找到$脚本?
- 23. 我在哪里可以找到ExpressionParseHelper?
- 24. 我在哪里可以找到ServerConnection类?
- 25. 我在哪里可以找到@ Html.FacebookSignedRequest()
- 26. 我在哪里可以找到Base64Encoder类?
- 27. 我在哪里可以找到UAAppReviewManager-iOS.bundle
- 28. 我在哪里可以找到Django get_absolute_url?
- 29. 我在哪里可以找到整洁
- 30. 我在哪里可以找到ssbdiagnose
增加赏金,因为Java语言转换助理不再可用。我发现了锐化,但是还有其他工具吗? – Residuum 2010-10-28 12:18:13