2012-07-05 74 views
0

我正在開發包含現有的Java類名的列表,網頁:如何在網頁中顯示Java類的代碼(JSP)

因此當用戶點擊Java類的鏈接名稱將打開一個包含此Java類的代碼的新網頁。 所以要做到這一點,我將使用流讀取文件(Java類),並寫在網頁上。 你有另一個優化的解決方案嗎?

+1

你應該有這個源文件,而不僅僅是類文件。 – Thilo 2012-07-05 12:07:29

回答

3

只需像讀取任何其他文本文件一樣閱讀.java文件即可。請注意,確保你正在使用.java文件進行操作,而不是編譯的.class文件。

然後,您可以選擇格式化它。

+1

您可以像Oracle那樣使用腳本來設置原始代碼樣式 - 如[BorderDemo.java](http://docs.oracle.com/javase/tutorial/displayCode.html?code=http://docs.oracle.org的.com/JavaSE的/教程/ uiswing /實例/組件/ BorderDemoProject/SRC /組件/ BorderDemo.java)。 SO也可以很好地表示代碼,但使用更復雜的服務器端解決方案來標記它。 – 2012-07-05 14:12:08

+1

@AndrewThompson在這個項目中,我目前正在使用Java和JavatoHtml將java轉換爲html,不出所料。 – 2012-07-05 14:22:38

+0

是的,JavatoHtml將是從服務器端完成它的好方法。 – 2012-07-05 14:29:11

-2

對於每個java類生成一個靜態的html頁面,並點擊簡單的打開該頁面。

+1

這是一個非常糟糕的主意,特別是如果不止有幾個java文件。他應該使用php動態創建它並讀取文件的內容,就好像它是一個基本上是.java文件的純文本文件。 – 2012-07-05 12:09:38

+0

爲什麼要爲每個類生成一個HTML?他所需要的只是一個HTML頁面。 – Tomer 2012-07-05 12:11:26

+0

有了許多HTML頁面,您可以在不使用JavaScript的情況下獲得語法突出顯示。 – corsair 2012-07-05 13:30:04

4

使用<c:import /> JSTL並嵌入<pre></pre>標記中的內容。

<c:import var="content" url="File.java"/> 
<pre> 
<c:out value="${content}"/> 
</pre> 
2

有一個叫做back2Code的新項目,它會將類文件反編譯回源代碼。

http://code.google.com/p/back2code/

  1. 存儲類服務器
  2. 文件的位置讀取相應的文件。
  3. 使用API​​將其反編譯爲源代碼。
  4. 正確顯示源代碼。
+0

只有沒有源代碼(.java文件)時,這纔是最好的解決方案。編譯爲字節碼時,爲了優化起見,編譯器會改變一些東西,比如局部變量的名字等。這減少了反編譯的Java代碼的可讀性。 – SadClown 2012-07-05 12:24:15

+0

在反編譯時也完全忽略了註釋 – madhairsilence 2012-07-05 12:25:42