因此,當您將Java(.java)編譯到類文件(.class)中時,文件的名稱可以更改,也可以更改文件的擴展名。如果我在C#中有一段代碼將Java代碼編譯到類文件中,那麼我將如何獲得C#中這些輸出類文件的名稱?在C#中編譯Java文件後,如何獲得輸出CLASS文件名?
1
A
回答
0
當你編譯一個.java文件時,你將得到文件中聲明的每個類的.class文件。這意味着主類必須匹配文件名,以及任何內部類和匿名類。
class Outer {
static class Inner {
}
public void run() {
Thread t = new Thread(new Runnable() {
public void run() {
// code here
}
});
}
}
會產生:
Outer.class
Outer$Inner.class
Outer$1.class
因此,假設你正在建設一個乾淨的目錄,你可以得到的文件用的.class擴展列表,並通過了解得到Foo.java
所有類的列表將會有一個是Foo.class
和其他以Foo$
開頭的。現在這可能會被破壞,因爲你在技術上允許你有自己的類,其中有$
,但是強烈建議你不要這樣做,因爲它通常表示系統生成的類文件。
0
您可以通過編譯器選項喜歡玩:javac的-d目錄 使用過程類來啓動java編譯器
Process.StartInfo.FileName = "javac";
首先,你應該生成一個臨時導演。
Directory.Create(Application.StartupPath + @"/TemporaryJavaFiles");
Process.StartInfo.Arguments = "-d "+Application.StartupPath + @"/TemporaryJavaFiles";
Process.Start();
string[] JavaClassess = Directory.GetFilesApplication.StartupPath + @"/TemporaryJavaFiles");
0
string[] filePaths = Directory.GetFiles(@directoryString, "*.class");
怎麼樣?
0
使用javac -verbose yourclass.java
並在輸出中搜索以[寫入]開頭的行。
相關問題
- 1. 如何在輸入文件中獲得輸出文件格式
- 2. 如何在Java中編譯.java文件?
- 3. Java不編譯$ CLASSPATH下的.class文件
- 4. 您可以從Java中的.class文件獲得.java文件
- 5. 將.xsl文件編譯爲.class文件
- 6. 如何使用C++編譯.java文件
- 7. 編譯或不編譯.class文件
- 8. 在UNIX中編譯輸出文件
- 9. 如何在反編譯.class文件後解決語法錯誤
- 10. 得到的ClassLoader .class文件在Java中
- 11. 在編譯文件後編輯文件
- 12. 如何在C#中編譯* .compiled文件?
- 13. Java - 將.class文件編譯爲可讀文件
- 14. Java:在輸出文件中得到零
- 15. 如何重命名Java .class文件?
- 16. 如何從classLoader獲得java.lang;類而不是編譯文件* .java
- 17. 如何從rt.jar反編譯Java .class文件
- 18. 如何使用java反編譯.class文件?
- 19. 如何知道編譯了一個.class文件的Java版本?
- 20. Jenkins .class文件輸出
- 21. 如何防止SBT重新編譯修改後的.class文件?
- 22. Eclipse編譯在包文件夾中放了很多.class文件
- 23. 如何更改已編譯的.class文件而不反編譯?
- 24. 檢查Java編譯器版本(JDK版本)的編譯後的class文件
- 25. 如何在shell中輸出文件名?
- 26. Mex文件輸出在Matlab中編譯後崩潰
- 27. 如何在編譯後執行文件?
- 28. 編譯java文件
- 29. 編譯Java文件
- 30. eclipse中編譯java文件
你的C#代碼是如何編譯java代碼的?你可以發佈C#代碼嗎? – Oded
如果該類是公共的,那麼它的文件名應該與類名相同。 – denolk
它只是在系統上執行javac。 – Alper