是否有程序訪問Java documentation的api?類似於Eclipse等編輯器/ IDE所做的類似於IntelliSense的工具。當然,javadoc生成的html可以被解析和編入索引,但是知道某些東西是否已經作爲獨立包存在是非常棒的。編程訪問Java文檔
更新: 爲了清楚起見,我試圖通過編程訪問java語言實現的文檔。但是,並不是一個簡單的方法,但是你必須從Oracle的站點獲取openjdk,然後執行make docs
並提供一些doclet以非html形式獲得輸出。這是我從一開始就試圖避免的。所以我正在閱讀所有的Makefiles,現在試圖弄清楚爲什麼$ PLATFORM沒有被解析並且源代碼失敗!
我最後解決了什麼問題:
刮傷html文檔。是的。意識到會完成我的工作。
import urllib2
import pymongo
mongo = pymongo.Connection('localhost')
mongo_db = mongo['api_db']
mongo_collection = mongo_db['api_collection']
URL='''http://docs.oracle.com/javase/6/docs/api/index-files/index-'''
URL_range = 27+1
def getPageElements(url):
content=urllib2.urlopen(url).read()
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup(content)
elements = soup('dl')
return elements
def savePageElements(elements):
for i in elements[0]:
try:
entry={'type_description':str(i.findNext('dt')).split('-')[1].split('<')[0]\
+i.findNext('a').findNext('a').renderContents(),\
'signature':i.findNext('a').findNext('a').renderContents()+i.findNext('b').renderContents(),\
'description': i.findNext('dd').renderContents()\
}
print entry
insert_id = mongo_collection.save(entry)
except:
pass
def retrieve(str):
mongo_documents = mongo_collection.find({
'signature': str,
#'type_description':"Method of java.io.PrintStream"
})
for this_document in mongo_documents:
print this_document
if __name__=="__main__":
for i in range(1,URL_range):
#url=URL+str(i)+".html"
#print "Processing:", url
#elements=getPageElements(url)
#print elements[0]
#savePageElements(elements)
retrieve("println(String)")
但看看dexy。如果我可以設法在Ubuntu上構建OpenJDK而不會造成任何問題 - 它會產生很好的JSON。
爲了什麼目的? – MadProgrammer
爲代碼和文檔之間的「特徵位置」和「可追蹤性」構建研究原型。 – Tathagata
它需要版本特定嗎?即Java 7,Java 6?或者你需要能夠跟蹤 – MadProgrammer