Esiste una API per l'accesso a livello di programmazione allo Java documentation? Qualcosa di simile a ciò che gli editor/IDE come Eclipse fanno per IntelliSense. Sicuramente, l'html generato da javadoc può essere analizzato e indicizzato, ma sarebbe bello sapere se qualcosa esiste già come pacchetto standalone.Accesso programmatico alla documentazione Java
Aggiornamento: Per essere chiari, sto cercando di ottenere un accesso programmatico alla documentazione per l'implementazione del linguaggio Java. Tuttavia, non esiste una facile via d'uscita, ma è necessario ottenere openjdk dal sito Oracle e quindi fare make docs
e fornire alcuni doclet per ottenere l'output in formato non-html. Questo è quello che stavo cercando di evitare sin dall'inizio. Quindi sto leggendo tutti i Makefile ora cercando di capire perché $ PLATFORM non viene risolto e la compilazione della fonte non funziona!
Quello che ho finalmente risolto con:
raschio documenti HTML. Sì. Mi sono reso conto che avrei finito il mio lavoro.
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)")
Ma dare un'occhiata a dexy. Se potessi essere riuscito a compilare OpenJDK su Ubuntu senza problemi - avrebbe generato un buon JSON con cui giocare.
Per quale scopo? – MadProgrammer
Per costruire un prototipo di ricerca per "posizione delle caratteristiche" e "tracciabilità" tra codice e documentazione. – Tathagata
Avrebbe bisogno di una versione specifica? cioè Java 7, Java 6? O dovresti essere in grado di tracciare tra – MadProgrammer