标签: jdk1.5

哪个临时端口有java InetSocketAddress绑定到?

我想要实现的目标

将服务器绑定到临时端口以进行单元测试.

我的问题:

使用1.5.0_22 JDK我尝试使用端口0根据javadoc绑定临时端口上的InetSocketAddress,但是我找不到地址对象的方法来知道它绑定到哪个端口,所以我不能拥有我的客户端相应配置:

InetSocketAddress address = new InetSocketAddress(0);
assertThat(address.isUnresolved(), is(false));
assertThat(address.getPort(), is(0));
Run Code Online (Sandbox Code Playgroud)

我可能无法正确理解javadoc语句:

有效端口值介于0和65535之间.端口号为零将使系统在绑定操作中获取临时端口.

但是,即使让我的服务器监听套接字后检查端口(我假设绑定已经发生)也不会返回除0以外的任何内容(以下使用http://simpleweb.sourceforge.net/库):

    Container httpServer = new Container() {

        public void handle(Request req, Response resp) {
        }
    };
    SocketConnection connection = new SocketConnection(httpServer);
    InetSocketAddress address = new InetSocketAddress(0);
    connection.connect(address);

    assertThat(address.isUnresolved(), is(false));
    assertThat(address.getPort(), is(0));
Run Code Online (Sandbox Code Playgroud)

使用nmap我甚至看不到绑定端口,所以我假设我的理解是不正确的.有帮助吗?

java sockets jdk1.5

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

Java 5和6中最有用或最有趣的新语言功能?

我刚才正在查看代码教程,并发现了一些有趣的东西 - import staticJDK 5中引入的功能:

import static org.junit.Assert.assertEquals;

public class AdditionTest {

  private int x = 1;
  private int y = 1;

  @Test public void addition() {
    int z = x + y;
    assertEquals(2, z);
    /* ^ this is a static method, normally called by Assert.assertEquals */
  }

}
Run Code Online (Sandbox Code Playgroud)

它让我想知道,JDK 5和6中引入了哪些其他功能我不知道?还有其他新的关键字用法吗?任何值得注意的新库类或函数?

我知道那里有发行说明或更改日志,我不是在寻找"RTFM"的答案.我想知道一个简短的列表,在您看来,您认为哪些功能在JDK 5或6中最具游戏规则.

java language-features jdk1.6 jdk1.5

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

如何将 Java 代码迁移到更新的 jdk(例如 1.8)

旧 jdk (1.5) 的Java 代码迁移更新的 Java 版本(1.8) 以提供其新功能和改进的最佳方法是什么。我们有一个很大的 Java jdk 5 代码库,想迁移到 jdk 8。

有很多的编译器警告和提示(例如diamond operatormulticatchunnecessary (un)boxing等),这将提高性能,代码的可读性,等等。

我们正在使用 Netbeans IDE。是否有我们可以使用的插件或有迁移脚本?

java netbeans jdk1.5 java-8

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

IntelliJ无法识别JDK版本

我在IntelliJ的想法8.1.1上写了一个java项目.当我去编译IntelliJ IDEA 8.1.1的选项时,它会显示弹出消息框,因为它显示错误 -

无法确定JDK
Update JDK配置的版本 .

即使我有正确的JDK版本,我在我的PC上安装了jdk1.5.0,可以正常使用其他环境.请建议我可能需要更改的任何设置.

java intellij-idea jdk1.5

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

javk.swing.grouplayout在jdk 1.5中不存在

我用netbeans开发了一个java应用程序.它使用了jdk 1.6.

它工作正常.

但现在需要的是我需要从没有netbeans的另一台机器中的.java文件构建应用程序的jar,并使用jdk 1.5.我无法将该机器升级到jdk 1.6.

有什么办法可以让我的java文件在jdk 1.5机器上编译和工作,可能对我的源代码进行了很小的改动.

错误是javk.swing.grouplayout在jdk 1.5中不可用

请帮忙...

swing backport netbeans jdk1.5

4
推荐指数
1
解决办法
6206
查看次数

可以复制jdk安装文件夹吗

我找不到一个 jdk 安装程序的版本。我可以直接将 jdk 安装文件夹从另一台计算机复制到我的而不安装它吗?

java installation jdk1.5

4
推荐指数
1
解决办法
9714
查看次数

javax.activation.MimetypesFileTypeMap()的替代方法.getContentType(filename);

我有一些代码:

import javax.activation.MimetypesFileTypeMap;
...
..
.
String filename = "foo.xls"; // Where this can be any file name .doc, .pdf or whatever

String headerContentType = new MimetypesFileTypeMap().getContentType(filename);
Run Code Online (Sandbox Code Playgroud)

似乎javax.activation.MimetypesFileTypeMap类里面rt.jar有JRE系统库(jdk1.6.0_10)但不是jdk1.5.0

我想避免使用1.6库.谁知道一个简单快捷的选择?

java jdk1.6 jdk1.5

3
推荐指数
1
解决办法
4305
查看次数

陷入JDK 6

JDK 6中是否存在早期版本中不存在的问题?我有兴趣在Timestamp.valueOf()的工作方式中找到一些令人惊讶的变化,如下面的变化.

Timestamp.valueOf(),提供时间戳,其中包含带有单个数字的日期或月份.例如.2009-9-20,2009-9-3,2009-12-4等,在JDK 6中表现不同 - 它抛出IllegalArgumentException,表示时间戳格式不正确.而JDK 5(和早期版本)工作得很好,提供正确的值,前缀为那些单个数字的'0'.

JDK 6只是更严格,因为该方法确实认为它的参数是JDBC时间戳转义格式的String.但是,这个BREAKS代码用JDK 5编写.

代码如:

String s = "2009-9-1 00:00:00";
Timestamp t = Timestamp.valueOf(s);
Run Code Online (Sandbox Code Playgroud)

然而,JDK 6很好,小时,分钟,秒为单位数.通过查看JDK 6中Timestamp类的源代码,我发现了什么是错的.我找到了一个数组intDate [],它被初始化为{4,2,2},并且根据这个来检查日期中每个项目的长度阵列.

现在为什么时间部分工作正常,即使它们有单个数字?因为检查长度与等效数组intTime []的代码在源中被注释掉了.

JDK 5中的Timestamp类没有任何这些检查,并且可以正常使用这些输入.

我没有在官方网站的任何地方找到这样的奇怪之处.虽然我发现另一个人有同样的问题.这个问题很容易解决,我有兴趣找到JDK 6中发生的其他奇怪的变化.

java jdk1.6 jdk1.5

3
推荐指数
1
解决办法
618
查看次数

为什么我不能用BlockingQueue <Callable>实例化ThreadPoolExecutor; 为什么只有BlockingQueue <Runnable>?

我的理解是在1.5中添加了callable,并且runnable接口保持原样以防止世界结束.为什么我不能实例化- 为什么队列必须只运行runnable?在内部,如果我要提交,invokeAll,invokeAny callables,这应该没问题吧?还会返回一个callables列表吗?ThreadPoolExecutor(core, max, tu, unit, new BlockingQueue<Callable>())shutDownNow()

java jdk1.5 threadpoolexecutor

3
推荐指数
1
解决办法
2941
查看次数

对Java 5代码中实现的接口方法的@Override注释没有给出编译错误

POM包含(如/sf/answers/1567929891/中所述):

<profile>
  <id>compileWithJava5</id>
  <!--
    NOTE
    Make sure to set the environment variable JAVA5_HOME
    to your JDK 1.5 HOME when using this profile.
  -->
  <properties>
    <java.5.home>${env.JAVA5_HOME}</java.5.home>
    <java.5.libs>${java.5.home}/jre/lib</java.5.libs>
    <java.5.bootclasspath>${java.5.libs}/rt.jar${path.separator}${java.5.libs}/jce.jar</java.5.bootclasspath>
  </properties>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.5</source>
          <target>1.5</target>
          <compilerArguments>
            <bootclasspath>${java.5.bootclasspath}</bootclasspath>
          </compilerArguments>
        </configuration>
      </plugin>
    </plugins>
  </build>
</profile>
Run Code Online (Sandbox Code Playgroud)

$JAVA5_HOME 设置:

• echo $JAVA5_HOME
/usr/lib/jvm/jdk1.5.0_22
Run Code Online (Sandbox Code Playgroud)

据我所知,Java + Maven的神奇之处在于,它应该是maven-compiler-plugin指示JDK 1.8伪装成JDK 1.5并使用Java 5引导类路径的有效咒语.


根据为什么javac在@Override注释上失败,JDK 1.5将不允许接口的已 …

java jdk1.5 cross-compiling maven

3
推荐指数
1
解决办法
743
查看次数