相关疑难解决方法(0)

由于对所需库rt.jar的限制而对类进行访问限制?

我正在尝试编译由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

到底发生了什么?

这是我试图用香肠重构一头猪的情况吗?我最好重新创建存根吗?

java eclipse wsdl wsdl2java stub

813
推荐指数
12
解决办法
62万
查看次数

访问限制:由于对所需库的限制而无法访问..\jre\lib\rt.jar

我正在尝试修改一些遗留代码,同时又出现以下类型的错误:

访问限制:由于对所需库的限制,无法访问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中没有包含上述类的不同/旧版本.

任何人都能告诉我这个错误是什么以及我如何解决这个问题?

感谢您提前提供的帮助,

奥利

java access-denied

76
推荐指数
6
解决办法
15万
查看次数

由于对所需库的限制而对类进行访问限制

我在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类,我正在尝试使用它.

java eclipse

19
推荐指数
3
解决办法
7万
查看次数

为什么对于OperatingSystemMxBean,访问仅限于jre6/lib/rt.jar?

我正在尝试在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),如果我打算违反某种许可协议,我不想解决这个限制.任何人都可以帮我理解这个吗?

java

16
推荐指数
3
解决办法
4万
查看次数

将eclipse IDE指向使用JAVA_HOME中指定的JRE/JDK以外的其他JRE/JDK

我在我的开发环境中有两个JRE/SDK,但在我的情况下将JAVA_HOME设置为1.4.2是必要的,这导致我的eclipse IDE停止运行,因为它需要1.6及更高版本.

我可以知道如何修改eclipse ini或环境家庭以使用我的其他1.6安装吗?

java eclipse

13
推荐指数
3
解决办法
3万
查看次数

为什么导入javax.servlet.*; 尽管安装了Java EE,但无法解决 Eclipse for Java EE开发人员

我想要使​​用的开源项目需要导入:

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 eclipse import servlets java-ee

8
推荐指数
2
解决办法
4万
查看次数

Java:以JSON响应的简单HTTP Server应用程序

我想用Java创建一个非常简单的HTTP服务器应用程序.

例如,如果我在端口8080中的localhost上运行服务器,并且我从浏览器进行以下调用,我想获得一个带有字符串'hello world!'的Json数组:

http://localhost:8080/func1?param1=123&param2=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响应处理程序或类似的东西发送它...

最简单的方法是什么,而不需要熟悉具有特殊功能和方法的多种第三方库?

java java-server

8
推荐指数
1
解决办法
2万
查看次数

如何从单个类中执行多个JUnit测试套件?

我试图在谷歌搜索,但我一直得到相同的答案,即使用以下代码:

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.

有没有办法来解决这个问题?或者我可以用来执行多个测试套件的另一种方法?

java junit

6
推荐指数
1
解决办法
756
查看次数

为警告创建 Java 注释 - @NonOptimal

@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)

如何创建此注释?

java annotations compiler-warnings

6
推荐指数
1
解决办法
191
查看次数

JTabbedPane中固定位置或一行中的选项卡

在我们的应用程序中,JTabbedPane具有无限制的选项卡,当选项卡的宽度超过选项卡式窗格的宽度时,选项卡将开始包装成多行.然后,当您单击其中一个上面的行中的选项卡时,整行将向下并到达前景.对于在多个选项卡之间进行点击的用户,由于无法跟踪选项卡顺序,因此非常容易混淆.

我怎么能 - 将标签固定到固定位置,同时将它们的内容放到前面(虽然这会损坏标签隐喻,但我不在乎),或者 - 将行数限制为一个(因此标签变得很好)狭窄而不是包装)?

java swing tabs jtabbedpane

5
推荐指数
2
解决办法
2402
查看次数

如何为我的跨平台Jar调用特定于OS X的方法?

我有一个编译的可执行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文件中包含此代码,以便我可以拥有一个一致的代码库?

java windows macos cross-platform

5
推荐指数
2
解决办法
1438
查看次数

Java HttpServer 错误:访问限制:“HttpServer”类型不是 API

我试图用 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 …

java

5
推荐指数
1
解决办法
7814
查看次数