java – 代码在Eclipse中编译,但不是通过命令提示符编译
发布时间:2020-12-15 04:59:34 所属栏目:Java 来源:网络整理
导读:以下代码使用JDK7在 Eclipse中编译没有任何问题(我使用的是更新10,但应该可以与任何版本的JDK7一起使用),但是在通过命令行使用完全相同的JDK进行编译时会失败.该类只提供接口方法的存根实现. import java.io.File;import java.io.IOException;import java.io
以下代码使用JDK7在
Eclipse中编译没有任何问题(我使用的是更新10,但应该可以与任何版本的JDK7一起使用),但是在通过命令行使用完全相同的JDK进行编译时会失败.该类只提供接口方法的存根实现.
import java.io.File; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.security.cert.X509Certificate; import java.util.Dictionary; import java.util.Enumeration; import java.util.List; import java.util.Map; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; import org.osgi.framework.BundleException; import org.osgi.framework.ServiceReference; import org.osgi.framework.Version; public class TestBundle implements Bundle { /** * @param args */ public static void main(String[] args) { } @Override public int compareTo(Bundle o) { return 0; } @Override public <A> A adapt(Class<A> arg0) { return null; } @Override public Enumeration<URL> findEntries(String arg0,String arg1,boolean arg2) { return null; } @Override public BundleContext getBundleContext() { return null; } @Override public long getBundleId() { return 0; } @Override public File getDataFile(String arg0) { return null; } @Override public URL getEntry(String arg0) { return null; } @Override public Enumeration<String> getEntryPaths(String arg0) { return null; } @Override public Dictionary<String,String> getHeaders() { return null; } @Override public Dictionary<String,String> getHeaders(String arg0) { return null; } @Override public long getLastModified() { return 0; } @Override public String getLocation() { return null; } @Override public ServiceReference<?>[] getRegisteredServices() { return null; } @Override public URL getResource(String arg0) { return null; } @Override public Enumeration<URL> getResources(String arg0) throws IOException { return null; } @Override public ServiceReference<?>[] getServicesInUse() { return null; } @Override public Map<X509Certificate,List<X509Certificate>> getSignerCertificates( int arg0) { return null; } @Override public int getState() { return 0; } @Override public String getSymbolicName() { return null; } @Override public Version getVersion() { return null; } @Override public boolean hasPermission(Object arg0) { return false; } @Override public Class<?> loadClass(String arg0) throws ClassNotFoundException { return null; } @Override public void start() throws BundleException { } @Override public void start(int arg0) throws BundleException { } @Override public void stop() throws BundleException { } @Override public void stop(int arg0) throws BundleException { } @Override public void uninstall() throws BundleException { } @Override public void update() throws BundleException { } @Override public void update(InputStream arg0) throws BundleException { } } osgi的jar文件可以从here下载 我使用以下命令通过命令行编译它: javac.exe -cp org.eclipse.osgi_3.8.0.v20120529-1548.jar TestBundle.java 通过命令行编译时出现以下错误: TestBundle.java:101: error: type ServiceReference does not take parameters public ServiceReference<?>[] getRegisteredServices() { ^ TestBundle.java:119: error: type ServiceReference does not take parameters public ServiceReference<?>[] getServicesInUse() { ^ TestBundle.java:18: error: TestBundle is not abstract and does not override abstract method adapt(Class) in Bundle public class TestBundle implements Bundle { ^ TestBundle.java:28: error: method does not override or implement a method from a supertype @Override ^ TestBundle.java:35: error: name clash: <A>adapt(Class<A>) in TestBundle and adapt(Class) in Bundle have the same erasure,yet neither overrides the other public <A> A adapt(Class<A> arg0) { ^ where A is a type-variable: A extends Object declared in method <A>adapt(Class<A>) TestBundle.java:34: error: method does not override or implement a method from a supertype @Override ^ 6 errors 解决方法
在Java 7上编译时,OSGi规范捆绑包存在泛型问题.这是因为编译时使用jdk 1.4向后兼容的捆绑包使得它们在Jdk 7中中断.经过大量投诉后发布了符合以下规定的新版本jdk 7现在.
4.3.1源与4.3.0相同.它只是重新编译.您应该能够使用此jar编译代码.我不确定这与你使用的eclipse有什么关系,但我猜他们只是使用旧的编译规范类. http://search.maven.org/remotecontent?filepath=org/osgi/org.osgi.core/4.3.1/org.osgi.core-4.3.1.jar (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |