以编程方式访问Java文档

Tat*_*ata 9 java api documentation

是否有以编程方式访问Java文档的API ?类似于Eclipse的编辑器/ IDE为IntelliSense做的事情.当然,javadoc生成的html可以被解析和索引,但是很高兴知道某些东西是否已作为独立包存在.

更新:为了清楚起见,我试图以编程方式访问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)")
Run Code Online (Sandbox Code Playgroud)

但是看看dexy.如果我能够在没有问题的情况下设法在Ubuntu上构建OpenJDK,那么它就会产生很好的JSON.

Mis*_*ble 2

当您编写时,Eclipse 会解析 javadoc 并且做得非常好。好像是3.2M4引入的。您也许能够从 Eclipse 源代码中提取功能,检查 Eclipse 社区的入口点可能是一个不错的起点。

如果这不起作用,我猜你的起点将是一个普通的 HTML 解析器。