2013-07-31 13 views
5

Javaコードアナライザ(Trees APIを使用したASTのもの)で作業していますが、検査対象のコードが使用するかどうかに関するレポートを作成しようとしています移植性のないAPI太陽のパッケージのようなものは警告を引き起こすはずです。 SE 7移植クラスの定義リストはどこですか? SE Javadocsよりも解析可能なマシンはありますか? Javadocがポータブルリストの場合、どのようにOpenJDKのすべてのJavaソースから生成されますか?移植可能なコードは別々に保管されていますか?Javaクラスが移植可能なSEクラスであるかどうかを確認

+0

Javacは非ポータブルAPIを使用しているときに警告を発すると思います。あなたはおそらくそこで調査することができます。 – assylias

+0

モジュールシステムでJava 9まで、oracleのJavaのクラスを列挙し、OpenJDKのクラスを列挙します。交差点は携帯可能でなければなりません。 –

答えて

1

コアSEクラスは、JDKビルドで使用されるファイルこのプロセスは、次の場所にあります:https://github.com/openjdk-mirror/jdk7u-jdk/blob/master/make/docs/CORE_PKGS.gmk

# CORE_PKGS is the list of packages that form the 
# Java API Specification. 
# 
### ***IMPORTANT NOTE*** 
### There is also a "REGEXP" variable in the docs/makefile that 
### determines which table the packages go in on the main page. 
### Currently, there is only table ("Platform Packages") and 
### everything goes in it, so REGEXP is "*". But if that policy 
### changes, packages added will need to be reflected in that 
### list of wildcard expressions, as well. 
### 
CORE_PKGS =          \ 
    java.applet         \ 
    java.awt          \ 
    java.awt.color         \ 
    java.awt.datatransfer       \ 
    java.awt.dnd         \ 
    java.awt.event         \ 
    java.awt.font         \ 
    java.awt.geom         \ 
    java.awt.im         \ 
    java.awt.im.spi        \ 
    java.awt.image         \ 
    java.awt.image.renderable      \ 
    java.awt.print         \ 
    java.beans          \ 
    java.beans.beancontext       \ 
    java.io          \ 
    java.lang          \ 
    java.lang.annotation       \ 
    java.lang.instrument       \ 
    java.lang.invoke        \ 
    java.lang.management       \ 
    java.lang.ref         \ 
    java.lang.reflect        \ 
    java.math          \ 
    java.net          \ 
    java.nio          \ 
    java.nio.channels        \ 
    java.nio.channels.spi       \ 
    java.nio.charset        \ 
    java.nio.charset.spi       \ 
    java.nio.file     \ 
    java.nio.file.attribute   \ 
    java.nio.file.spi    \ 
    java.rmi          \ 
    java.rmi.activation       \ 
    java.rmi.dgc         \ 
    java.rmi.registry        \ 
    java.rmi.server        \ 
    java.security         \ 
    java.security.acl        \ 
    java.security.cert        \ 
    java.security.interfaces      \ 
    java.security.spec        \ 
    java.sql          \ 
    java.text          \ 
    java.text.spi         \ 
    java.util          \ 
    java.util.concurrent       \ 
    java.util.concurrent.atomic     \ 
    java.util.concurrent.locks      \ 
    java.util.jar         \ 
    java.util.logging        \ 
    java.util.prefs        \ 
    java.util.regex        \ 
    java.util.spi         \ 
    java.util.zip         \ 
    javax.accessibility       \ 
    javax.activation        \ 
    javax.activity         \ 
    javax.annotation        \ 
    javax.annotation.processing     \ 
    javax.crypto         \ 
    javax.crypto.interfaces      \ 
    javax.crypto.spec        \ 
    javax.imageio         \ 
    javax.imageio.event       \ 
    javax.imageio.metadata       \ 
    javax.imageio.plugins.jpeg      \ 
    javax.imageio.plugins.bmp      \ 
    javax.imageio.spi        \ 
    javax.imageio.stream       \ 
    javax.jws          \ 
    javax.jws.soap         \ 
    javax.lang.model        \ 
    javax.lang.model.element      \ 
    javax.lang.model.type       \ 
    javax.lang.model.util       \ 
    javax.management        \ 
    javax.management.loading      \ 
    javax.management.monitor      \ 
    javax.management.relation      \ 
    javax.management.openmbean      \ 
    javax.management.timer       \ 
    javax.management.modelmbean     \ 
    javax.management.remote      \ 
    javax.management.remote.rmi     \ 
    javax.naming         \ 
    javax.naming.directory       \ 
    javax.naming.event        \ 
    javax.naming.ldap        \ 
    javax.naming.spi        \ 
    javax.net          \ 
    javax.net.ssl         \ 
    javax.print         \ 
    javax.print.attribute       \ 
    javax.print.attribute.standard     \ 
    javax.print.event        \ 
    javax.rmi          \ 
    javax.rmi.CORBA        \ 
    javax.rmi.ssl         \ 
    javax.script         \ 
    javax.security.auth       \ 
    javax.security.auth.callback     \ 
    javax.security.auth.kerberos     \ 
    javax.security.auth.login      \ 
    javax.security.auth.spi      \ 
    javax.security.auth.x500      \ 
    javax.security.cert       \ 
    javax.security.sasl       \ 
    javax.sound.sampled       \ 
    javax.sound.sampled.spi      \ 
    javax.sound.midi        \ 
    javax.sound.midi.spi       \ 
    javax.sql          \ 
    javax.sql.rowset        \ 
    javax.sql.rowset.serial      \ 
    javax.sql.rowset.spi       \ 
    javax.swing         \ 
    javax.swing.border        \ 
    javax.swing.colorchooser      \ 
    javax.swing.filechooser      \ 
    javax.swing.event        \ 
    javax.swing.table        \ 
    javax.swing.text        \ 
    javax.swing.text.html       \ 
    javax.swing.text.html.parser     \ 
    javax.swing.text.rtf       \ 
    javax.swing.tree        \ 
    javax.swing.undo        \ 
    javax.swing.plaf        \ 
    javax.swing.plaf.basic       \ 
    javax.swing.plaf.metal       \ 
    javax.swing.plaf.multi       \ 
    javax.swing.plaf.nimbus      \ 
    javax.swing.plaf.synth       \ 
    javax.tools         \ 
    javax.transaction        \ 
    javax.transaction.xa       \ 
    javax.xml.parsers        \ 
    javax.xml.bind         \ 
    javax.xml.bind.annotation      \ 
    javax.xml.bind.annotation.adapters    \ 
    javax.xml.bind.attachment      \ 
    javax.xml.bind.helpers       \ 
    javax.xml.bind.util       \ 
    javax.xml.soap         \ 
    javax.xml.ws         \ 
    javax.xml.ws.handler       \ 
    javax.xml.ws.handler.soap      \ 
    javax.xml.ws.http        \ 
    javax.xml.ws.soap        \ 
    javax.xml.ws.spi        \ 
    javax.xml.ws.spi.http       \ 
    javax.xml.ws.wsaddressing      \ 
    javax.xml.transform       \ 
    javax.xml.transform.sax      \ 
    javax.xml.transform.dom      \ 
    javax.xml.transform.stax      \ 
    javax.xml.transform.stream      \ 
    javax.xml          \ 
    javax.xml.crypto    \ 
    javax.xml.crypto.dom    \ 
    javax.xml.crypto.dsig    \ 
    javax.xml.crypto.dsig.dom   \ 
    javax.xml.crypto.dsig.keyinfo   \ 
    javax.xml.crypto.dsig.spec    \ 
    javax.xml.datatype        \ 
    javax.xml.validation       \ 
    javax.xml.namespace       \ 
    javax.xml.xpath        \ 
    javax.xml.stream        \ 
    javax.xml.stream.events      \ 
    javax.xml.stream.util       \ 
    org.ietf.jgss         \ 
    org.omg.CORBA         \ 
    org.omg.CORBA.DynAnyPackage     \ 
    org.omg.CORBA.ORBPackage      \ 
    org.omg.CORBA.TypeCodePackage     \ 
    org.omg.stub.java.rmi       \ 
    org.omg.CORBA.portable       \ 
    org.omg.CORBA_2_3        \ 
    org.omg.CORBA_2_3.portable      \ 
    org.omg.CosNaming        \ 
    org.omg.CosNaming.NamingContextExtPackage  \ 
    org.omg.CosNaming.NamingContextPackage   \ 
    org.omg.SendingContext       \ 
    org.omg.PortableServer       \ 
    org.omg.PortableServer.CurrentPackage   \ 
    org.omg.PortableServer.POAPackage    \ 
    org.omg.PortableServer.POAManagerPackage  \ 
    org.omg.PortableServer.ServantLocatorPackage \ 
    org.omg.PortableServer.portable    \ 
    org.omg.PortableInterceptor     \ 
    org.omg.PortableInterceptor.ORBInitInfoPackage \ 
    org.omg.Messaging        \ 
    org.omg.IOP         \ 
    org.omg.IOP.CodecFactoryPackage    \ 
    org.omg.IOP.CodecPackage      \ 
    org.omg.Dynamic        \ 
    org.omg.DynamicAny        \ 
    org.omg.DynamicAny.DynAnyPackage    \ 
    org.omg.DynamicAny.DynAnyFactoryPackage  \ 
    org.w3c.dom         \ 
    org.w3c.dom.events        \ 
    org.w3c.dom.bootstrap       \ 
    org.w3c.dom.ls         \ 
    org.xml.sax         \ 
    org.xml.sax.ext        \ 
    org.xml.sax.helpers 
0

.classファイルを解析する場合は、Javassist http://www.csg.ci.i.u-tokyo.ac.jp/~chiba/javassist/を使用して、クラスから参照されるすべてのクラス名のリストを取得できます。次に、クラスパッケージを解析することができます。 JavaパブリックAPIを構成するクラスは、java、javaxおよびorg.omg、org.w3c.dom、org.xml.saxパッケージのサブパッケージにあります。

+0

使用されているクラスのリストを取得することは、私が立ち往生した場所ではありません。与えられたパッケージ/クラス/メソッドが実装間で移植可能であるかどうかを確かめることです。私は、rt.jarのすべてのjava/javaxクラスがパブリックAPIで定義されていることを100%確信しているわけではありません。また、いくつかのEEクラスは同じ名前で始まり、100%移植性* SE *クラスを使用していることを報告したいと思います。 – Chase

+0

OK。 clazz.getClassLoader()== nullの場合はrt.jarからです –

+0

これはどのように役立ちますか? – Chase

関連する問題