回答
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. 在哪裏可以找到我的DB2
- 5. 我在哪裏可以找到的UIKit
- 6. 我在哪裏可以找到Java Servlet容器
- 7. 在哪裏可以找到Carrot2 C#API?
- 8. C#在哪裏可以找到System.Windows.Controls.dll
- 9. 我在哪裏可以找到IVCWizCtlUI
- 10. 我在哪裏可以找到gtkmm/overlay.h?
- 11. 我在哪裏可以找到ExpressionParseHelper?
- 12. 我在哪裏可以找到ContactsListActivity?
- 13. 我在哪裏可以找到PyBluez API
- 14. 我在哪裏可以找到Psychtoolbox-3.0.11?
- 15. 我在哪裏可以找到System.ComponentModel.Composition.Initialization.dll?
- 16. 我在哪裏可以找到sharepoint api
- 17. 我在哪裏可以找到PHPUnit_Extensions_SeleniumTestCase?
- 18. 我在哪裏可以找到System.Linq.Dynamic dll?
- 19. 我在哪裏可以找到$腳本?
- 20. 我在哪裏可以找到tomesh.c?
- 21. Hrez.exe我在哪裏可以找到它?
- 22. 我在哪裏可以找到InlinePageParser類?
- 23. 我在哪裏可以找到Microsoft.IdentityModel.Extensions.dll庫?
- 24. 我在哪裏可以找到System.Web.HttpContext.Current.Server dll?
- 25. 我在哪裏可以找到Google+ API?
- 26. 我在哪裏可以找到VAT API?
- 27. 我在哪裏可以找到com.ibm.xml.parsers.SAXParser?
- 28. 我在哪裏可以找到「j_security_check」?
- 29. 我在哪裏可以找到ServerConnection類?
- 30. 我在哪裏可以找到IContentTypeManager
增加賞金,因爲Java語言轉換助理不再可用。我發現了銳化,但是還有其他工具嗎? – Residuum 2010-10-28 12:18:13