标签: openjdk

Javac没有安装openjdk-6-jdk

我周末一直在尝试一些不同的java编译器,并决定今天早上坚持使用javac.然后我继续清理由我的测试引起的混乱,删除了每一个java的痕迹,并在autoremove和autoclean之后做了一个新的'apt-get install openjdk-6-jdk'.

然后遇到以下怪异:

tarskin@5-PARA-11-0120:~$ javac
The program 'javac' can be found in the following packages:
 * openjdk-6-jdk
 * ecj
 * gcj-4.4-jdk
 * gcj-4.6-jdk
 * gcj-4.5-jdk
 * openjdk-7-jdk
Try: sudo apt-get install <selected package>
Run Code Online (Sandbox Code Playgroud)

我已经安装了openjdk,但无论如何我试过它:

tarskin@5-PARA-11-0120:~$ sudo apt-get install openjdk-6-jdk
[sudo] password for tarskin: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
openjdk-6-jdk is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
tarskin@5-PARA-11-0120:~$ 
Run Code Online (Sandbox Code Playgroud)

我知道我必须做一些愚蠢的事情,但我不知道是什么,如果有人能指出正确的方向,那将非常感激......

干杯

编辑:找到关于我的java发行版的"新"实例的一些其他奇怪的方面,它似乎没有认识到例如应该来自正则表达式导入耸肩的 '模式'或'匹配器' .

java openjdk javac

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

如何在 Jetty 中禁用特定的 SSL 协议?

我有一个 Web 应用程序在 Debian 6.0.7 上的 Jetty 6 + Open JDK 7 上运行。当客户端启动 HTTPS 连接时,我有一个安全要求接受 TLS 握手但接受 SSLv3.0 握手。

在我的 jetty.xml 中,我将协议设置为 TLS:

<New class="org.mortbay.jetty.security.SslSocketConnector">
    <Set name="protocol">TLS</Set>
    ...
Run Code Online (Sandbox Code Playgroud)

使用此配置,Web 服务器似乎仍然接受 SSLv3.0 握手。这已经通过“sslscan”工具和运行“curl -sslv3 -kv {host}”进行了验证。

是否可以将 Jetty 配置为仅接受 TLS 握手?如果需要,我愿意升级我的 Jetty 版本。

java ssl openjdk jetty sslv3

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

Fedora OpenJDK设置JAVA_HOME

我正在使用Fedora(实际上是Pidora,因为我试图在raspberrypi集群上设置hadoop).我使用ansible在所有节点上安装了oopenjdk.但是,当我尝试设置JAVA_HOME环境变量时,我真的很困惑,看看以下文件夹/usr/lib/jvm:

[root@datafireball1 jvm]# ls
java-1.7.0-openjdk-1.7.0.60-2.4.7.0.fc20.arm  jre  jre-1.7.0  jre-1.7.0-openjdk  jre-1.7.0-openjdk-1.7.0.60-2.4.7.0.fc20.arm  jre-openjdk
[root@datafireball1 jvm]# ls -alth
total 80K
drwxr-xr-x   3 root root 4.0K Jun  7 21:07 .
lrwxrwxrwx   1 root root   35 Jun  7 21:07 jre-1.7.0-openjdk -> /etc/alternatives/jre_1.7.0_openjdk
lrwxrwxrwx   1 root root   27 Jun  7 21:07 jre-1.7.0 -> /etc/alternatives/jre_1.7.0
lrwxrwxrwx   1 root root   29 Jun  7 21:07 jre-openjdk -> /etc/alternatives/jre_openjdk
lrwxrwxrwx   1 root root   21 Jun  7 21:07 jre -> /etc/alternatives/jre
lrwxrwxrwx   1 root root   48 Jun  7 21:07 jre-1.7.0-openjdk-1.7.0.60-2.4.7.0.fc20.arm …
Run Code Online (Sandbox Code Playgroud)

java linux openjdk fedora environment-variables

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

OpenJDK在jar中找不到主类,而OracleJDK可以在

我有一个问题,就是我完全无法使用OpenJDK运行任何jar,而使用普通的OracleJDK则没有问题。

OpenJDK # java -version

openjdk version "1.8.0_101"
OpenJDK Runtime Environment (IcedTea 3.1.0) (suse-14.3-x86_64)
OpenJDK 64-Bit Server VM (build 25.101-b13, mixed mode)
Run Code Online (Sandbox Code Playgroud)

当我使用此JDK运行jar时,即使在清单中也很难找到主类。


OracleJDK # java -version

java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
Run Code Online (Sandbox Code Playgroud)

当我使用此JDK启动jar时,没有问题。

我是否需要在OpenJDK中进行配置,以便它可以从清单中找到主类,或者OpenJDK不能这样做是什么?

编辑:

源文件结构:

-- ui  
---- Main.java  
Run Code Online (Sandbox Code Playgroud)

Gradle构建脚本:

group 'some.group'
version '0.1'

apply plugin: 'java'
apply plugin: 'application'

mainClassName = "ui.Main"

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    compile group: 'org.zeromq', name: …
Run Code Online (Sandbox Code Playgroud)

java openjdk javafx jar java-8

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

在多线程Tomcat服务器中访问全局变量

编辑:我已经发现单例的构造函数被多次调用,因此看起来这些类被单独的类加载器多次加载.如何在Tomcat中创建全局单例?我一直在谷歌搜索,但到目前为止没有运气.

我有一个像我这样构造的单例对象:

private static volatile KeyMapper mapper = null;

public static KeyMapper getMapper()
{
    if(mapper == null)
    {
        synchronized(Utils.class)
        {
            if(mapper == null)
            {
                mapper = new LocalMemoryMapper();
            }
        }
    }

    return mapper;
}
Run Code Online (Sandbox Code Playgroud)

KeyMapper类基本上是HashMap的同步包装器,只有两个函数,一个用于添加映射,另一个用于删除映射.在我的32位Windows机器上运行Tomcat 6.24时,一切正常.然而,当在64位Linux机器(带有OpenJDK 1.6.0-b09的CentOS 5.4)上运行时,我添加一个映射并打印出KeyMapper使用的HashMap的大小,以验证添加的映射(即验证大小= 1).然后我尝试用另一个请求检索映射,并且我一直变为null,当我检查HashMap的大小时它是0.我确信映射不会被意外删除,因为我已经注释掉所有要删除的调用(我不使用clear或任何其他mutators,只是获取和放置).

请求通过Tomcat 6.24(配置为使用200个线程,最少4个线程)并且我将-Xnoclassgc传递给jvm以确保类不会无意中收集垃圾(jvm也在-server模式下运行).我还为KeyMapper添加了一个finalize方法,如果它被垃圾收集以确认它没有被垃圾收集,则打印到stderr.

我在我的智慧结束,我无法弄清楚为什么一分钟HashMap中的条目存在而下一个不是:(

java linux openjdk multithreading tomcat

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

关于Linux上Java的类路径设置

大家.

我在arch linux上使用openjdk-7.我最近开始学习Java,遇到了这样的问题:

我在/home/hqwrong/Code/java/mew/Mouth.java创建了一个文件:

package mew;

public class Mouth{
   public static void main(String argv[]){
       pickle.Say s = new pickle.Say();
  }
}
Run Code Online (Sandbox Code Playgroud)

另一个在/home/hqwrong/Code/java/pickle/Say.java:

package pickle;

public class Say{
   public Say(){
      System.out.println("Say");
   }
}
Run Code Online (Sandbox Code Playgroud)

我将Say.java编译为Say.class,使用:

$ cd /home/hqwrong/Code/java/pickle
$ javac Say.java
Run Code Online (Sandbox Code Playgroud)

这是成功的.

我编译了Mouth.java,使用:

$ cd ../mew
$ export CLASSPATH=.:/home/hqwrong/Code/java/
$ javac Say.java
Run Code Online (Sandbox Code Playgroud)

没有错误消息.

但在我输入之后:

$ java说

我有:

Exception in thread "main" java.lang.SecurityException: Prohibited package name: java.mew
at java.lang.ClassLoader.preDefineClass(ClassLoader.java:649)
at java.lang.ClassLoader.defineClass(ClassLoader.java:785)
 at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native …
Run Code Online (Sandbox Code Playgroud)

java openjdk

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

无法使用yum或rpm在Fedora上安装jdk

救命!我不知道如何安装JDK!

[/usr/lib/jvm]$ su -c "yum install java-1.7.0-openjdk-devel"
Loaded plugins: langpacks, presto, refresh-packagekit
No package java-1.7.0-openjdk-devel available.
Error: Nothing to do

[/usr/lib/jvm]$ su -c "yum install java-1.7.0-openjdk"
Loaded plugins: langpacks, presto, refresh-packagekit
No package java-1.7.0-openjdk available.
Error: Nothing to do

[/usr/lib/jvm]$ su -c "yum install java-1.6.0-openjdk-devel"
Loaded plugins: langpacks, presto, refresh-packagekit
No package java-1.6.0-openjdk-devel available.
Error: Nothing to do

[/usr/lib/jvm]$ su -c "yum install java-1.6.0-openjdk"
Loaded plugins: langpacks, presto, refresh-packagekit
No package java-1.6.0-openjdk available.
Error: Nothing to do
Run Code Online (Sandbox Code Playgroud)

在这里,我手动下载了一些rpm,这是从oracle网站下载的最后一个:

[~]$ rpm …
Run Code Online (Sandbox Code Playgroud)

java openjdk centos fedora yum

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

Java SSL:无效的服务主体名称

在我的游戏的Java服务器上,我运行'sudo yum update',现在我在尝试通过我的游戏客户端进行连接时出现以下错误:

[2015-07-26 01:58:12] [Thread-2] INFO - Socket class: class sun.security.ssl.SSLSocketImpl
[2015-07-26 01:58:12] [Thread-2] INFO -    Remote address = /54.165.60.189
[2015-07-26 01:58:12] [Thread-2] INFO -    Remote port = 34215
[2015-07-26 01:58:12] [Thread-2] INFO -    Local socket address = /192.168.1.4:59805
[2015-07-26 01:58:12] [Thread-2] INFO -    Local address = /192.168.1.4
[2015-07-26 01:58:12] [Thread-2] INFO -    Local port = 59805
[2015-07-26 01:58:12] [Thread-2] INFO -    Need client authentication = false
[2015-07-26 01:58:17] [Thread-2] INFO -    Cipher suite = SSL_NULL_WITH_NULL_NULL
[2015-07-26 01:58:17] [Thread-2] …
Run Code Online (Sandbox Code Playgroud)

java ssl openjdk yum sslexception

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

在不同的Java 8次要版本下,CompletionException的不同消息

我在不同的小版本java下从相同的代码片段获得不同的输出.我无法在开放的jdk bug跟踪器上找到相关的票证.

CompletableFuture<String> completableFuture = new CompletableFuture<>();
completableFuture.complete("xxx");

completableFuture.thenCompose(str -> {
    CompletableFuture<String> completableFuture1 = new CompletableFuture<>();
    completableFuture1.completeExceptionally(new Exception("hello"));
    return completableFuture1;
}).exceptionally(ex -> {
    System.out.println(ex.getMessage());
    return null;
}).get();
Run Code Online (Sandbox Code Playgroud)

JDK 1.8.0_25下的输出:

你好

JDK 1.8.0_102下的输出:

java.lang.Exception:你好

较新的是修复还是回归?什么是相关票?

java openjdk java-8

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

Java java.lang.Integer类中的代码注释'HD,Figure'是什么意思?

例如,JDK方法java.lang.Integer.numberOfLeadingZeros(int):

public static int numberOfLeadingZeros(int i) {
    // HD, Figure 5-6
    if (i == 0)
        return 32;
    int n = 1;
    if (i >>> 16 == 0) { n += 16; i <<= 16; }
    if (i >>> 24 == 0) { n +=  8; i <<=  8; }
    if (i >>> 28 == 0) { n +=  4; i <<=  4; }
    if (i >>> 30 == 0) { n +=  2; i <<=  2; }
    n -= i …
Run Code Online (Sandbox Code Playgroud)

java openjdk jvm jvm-hotspot

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