我正在尝试编译由IBM的WSDL2Java在Java5上创建的Java 1.4代码,而无需重新创建存根并在Eclipse中看到此错误.我假设创建的存根应该只要运行时jar可用就可以编译(它们是).
Access restriction: The type QName is not accessible due to restriction on required library C:\Program Files\Java\jdk1.5.0_16\jre\lib\rt.jar
完整的类名是 javax.xml.namespace.QName
到底发生了什么?
这是我试图用香肠重构一头猪的情况吗?我最好重新创建存根吗?
我正在尝试修改一些遗留代码,同时又出现以下类型的错误:
访问限制:由于对所需库的限制,无法访问Headers类型中的方法create(JAXBRIContext,Object)..\jre\lib\rt.jar
对于这些进口声明:
import com.sun.xml.internal.bind.api.JAXBRIContext;
import com.sun.xml.internal.ws.api.message.Header;
import com.sun.xml.internal.ws.api.message.Headers;
import com.sun.xml.internal.ws.developer.WSBindingProvider;
Run Code Online (Sandbox Code Playgroud)
一直在寻找这可能意味着什么,以及如何解决它,但无法找到一个明确的答案.一些帖子似乎暗示我有一些JAR包含了实现类,这些类现在可用作核心java发行版的一部分,但据我所知,我所包含的JAR中没有包含上述类的不同/旧版本.
任何人都能告诉我这个错误是什么以及我如何解决这个问题?
感谢您提前提供的帮助,
奥利
我在Eclipse中收到此错误消息:
Access restriction: The type DirectoryWalker is not accessible
due to restriction on required library
/Library/Java/Extensions/commons-io-1.4.jar
Run Code Online (Sandbox Code Playgroud)
这是什么意思?关于同一主题还有其他SO问题,但在这种情况下似乎并不适用.我不是在创建一个新的java类,我正在尝试使用它.
我正在尝试在Eclipse中编译的一些Java代码遇到一些麻烦.我一直收到以下警告......
Access restriction: The type OperatingSystemMXBean is not accessible due to restriction on required library C:\Program Files\Java\jre6\lib\rt.jar
Run Code Online (Sandbox Code Playgroud)
从这行代码......
com.sun.management.OperatingSystemMXBean bean = (com.sun.management.OperatingSystemMXBean) java.lang.management.ManagementFactory.getOperatingSystemMXBean();
Run Code Online (Sandbox Code Playgroud)
我已经找到了解决方法,但我担心限制警告.这段代码适用于我的开源项目(CfTracker),如果我打算违反某种许可协议,我不想解决这个限制.任何人都可以帮我理解这个吗?
我在我的开发环境中有两个JRE/SDK,但在我的情况下将JAVA_HOME设置为1.4.2是必要的,这导致我的eclipse IDE停止运行,因为它需要1.6及更高版本.
我可以知道如何修改eclipse ini或环境家庭以使用我的其他1.6安装吗?
我想要使用的开源项目需要导入:
import javax.servlet.*;
import javax.servlet.http.*;
Run Code Online (Sandbox Code Playgroud)
据我所知,这些库是Java EE的一部分.所以我从这个位置安装了Java EE:http://www.oracle.com/technetwork/java/javaee/downloads/java-ee-sdk-7-jdk-7u21-downloads-1956231.html.安装Java EE并重新启动后,我仍然可以获得有关未解决的导入的信息.我应该怎么做才能使这些错误消失?

我想用Java创建一个非常简单的HTTP服务器应用程序.
例如,如果我在端口8080中的localhost上运行服务器,并且我从浏览器进行以下调用,我想获得一个带有字符串'hello world!'的Json数组:
http://localhost:8080/func1?param1=123¶m2=456
Run Code Online (Sandbox Code Playgroud)
我想在服务器中看到这样的东西(非常抽象的代码):
// Retunrs JSON String
String func1(String param1, String param2) {
// Do Something with the params
String jsonFormattedResponse = "['hello world!']";
return jsonFormattedResponse;
}
Run Code Online (Sandbox Code Playgroud)
我想这个函数实际上不应该"返回"json,而是使用一些HTTP响应处理程序或类似的东西发送它...
最简单的方法是什么,而不需要熟悉具有特殊功能和方法的多种第三方库?
我试图在谷歌搜索,但我一直得到相同的答案,即使用以下代码:
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
@SuiteClasses({FirstTest.class,SecondTest.class,ThirdTest.class})
public class RunTestSuite {
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试在程序中使用此代码时,会出现多个错误.所有人都说同样的话:Access restriction: The type is not API.
有没有办法来解决这个问题?或者我可以用来执行多个测试套件的另一种方法?
@Deprecated注释有什么特别之处我无法重现吗?
我需要创建一个类似于@Deprecated在 Eclipse 和构建时生成警告的注释。当我标记一个方法时,@Deprecated我会收到很好的警告。例如,如果我有一个旧方法(出于兼容性原因我可能仍然保留):
@Deprecated
public List<Account> getClientAccounts(final int clientId) {
// Implement search...
}
Run Code Online (Sandbox Code Playgroud)
然后,如果我尝试在 Eclipse 中使用它,我可以看到它带有删除线,并且左侧栏中有一个黄色图标:
此外,在构建时,我可以看到:
[警告] app1/src/test/java/com/app1/MyApp.java: app1/src/test/java/com/app1/MyApp.java 使用或覆盖已弃用的 API。
现在,根据我无法控制的外部因素(例如缺少数据库索引),有些方法不是最佳的,我想用我全新的@NonOptimal注释清楚地标记它们。我需要增加问题的可见性。到目前为止,我有:
@Retention(RUNTIME)
@Target(METHOD)
// What else here?
public @interface NonOptimal {
}
Run Code Online (Sandbox Code Playgroud)
如何创建此注释?
在我们的应用程序中,JTabbedPane具有无限制的选项卡,当选项卡的宽度超过选项卡式窗格的宽度时,选项卡将开始包装成多行.然后,当您单击其中一个上面的行中的选项卡时,整行将向下并到达前景.对于在多个选项卡之间进行点击的用户,由于无法跟踪选项卡顺序,因此非常容易混淆.
我怎么能 - 将标签固定到固定位置,同时将它们的内容放到前面(虽然这会损坏标签隐喻,但我不在乎),或者 - 将行数限制为一个(因此标签变得很好)狭窄而不是包装)?
我有一个编译的可执行JAR文件在Windows平台上失败.
原因是我想要正确地集成某些特定于OS X的属性 - 例如" 关于"窗口.
即使我特意使用条件封锁了代码,JAR仍然NoClassDefFoundError在第一行执行时崩溃.
if (isOSX()) {
com.apple.eawt.Application application = com.apple.eawt.Application.getApplication();
application.setAboutHandler(new com.apple.eawt.AboutHandler() {
@Override
public void handleAbout(com.apple.eawt.AppEvent.AboutEvent ae) {
new AboutWindow();
}
});
application.setDefaultMenuBar(MenuSystem.createMenu());
}
Run Code Online (Sandbox Code Playgroud)
是否可以在我的JAR文件中包含此代码,以便我可以拥有一个一致的代码库?
我试图用 javaHttpServer类做一些事情。
这是文档中的最小示例:
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import com.sun.net.httpserver.HttpServer;
class MyHandler implements HttpHandler
{
public void handle(HttpExchange t) throws IOException
{
InputStream is = t.getRequestBody();
read(is); // .. read the request body
String response = "This is the response";
t.sendResponseHeaders(200, response.length());
OutputStream os = t.getResponseBody();
os.write(response.getBytes());
os.close();
}
}
public class Main
{
HttpServer server = HttpServer.create(new InetSocketAddress(8000));
server.createContext("/applications/myapp", new MyHandler());
server.setExecutor(null); // creates a default executor
server.start();
}
Run Code Online (Sandbox Code Playgroud)
但我收到此错误消息:
描述资源路径位置类型访问限制:类型'HttpServer'不是API(对所需库'/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/rt.jar'的限制) Main .java /test/src/test …