小编Chr*_*ltz的帖子

如何更改从/ usr/libexec/java_home返回的Mac OS默认Java VM

(不确定这是否应该继续使用SU ...迁移肯定是一种选择,但更多的程序员在这里阅读问题,所以这里也是如此).

我正在运行Mac OS X 10.8.4,我安装了Apple的JDK 1.6.0_51以及Oracle的JDK 1.7.0_25.我最近为一些需要它的预发布软件安装了Oracle的1.8预览JDK.现在,当我运行/ usr/libexec/java_home时,我得到了这个:

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (4):
    1.8.0, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
    1.7.0_25, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
    1.6.0_51-b11-457, x86_64:   "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    1.6.0_51-b11-457, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)

大.

但是,运行:

$ java -version
Run Code Online (Sandbox Code Playgroud)

返回:

java version "1.8.0-ea"
Run Code Online (Sandbox Code Playgroud)

这意味着Java的默认版本目前是预发布版本,它打破了一些"普通"软件包(在我的情况下,VisualVM).

我无法设置,JAVA_HOME因为启动应用程序忽略环境变量,即使从命令行启动(例如$ open /Applications/VisualVM.app).

那么,是否有一个我可以编辑的文件,我可以在全局设置我的JVM订购首选项?

(请不要告诉我启动Java Preferences Panel,因为它根本不起作用:它不包含任何有用的东西,只列出我安装的4个JVM之一.)

更新:

Oracle JVM存在于/Library/Java/JavaVirtualMachines.重命名JDK 1.8目录jdk1.8.0.jvm.xyz不会改变任何东西:java_home仍然在正确的位置找到它,并且运行/ usr/bin/java仍然执行1.8 JVM.这不是synlinks等的问题.

类似问题的答案

虽然这个答案 …

java macos java-home

103
推荐指数
6
解决办法
12万
查看次数

为什么要使用C#类System.Random而不是System.Security.Cryptography.RandomNumberGenerator?

为什么有人会使用System.Random中的"标准"随机数生成器,而不是总是使用System.Security.Cryptography.RandomNumberGenerator(或其子类,因为RandomNumberGenerator是抽象的)的加密安全随机数生成器?

Nate Lawson 在13:11分钟的Google Tech Talk演讲中告诉我们" Crypto Strikes Back ",不要使用Python,Java和C#中的"标准"随机数生成器,而是使用加密安全版本.

我知道两个版本的随机数生成器之间的区别(参见问题101337).

但是,有什么理由不总是使用安全随机数发生器?为什么要使用System.Random?性能或许?

.net c# random cryptography

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

Tomcat的BIO连接器和NIO连接器有什么区别?

我想知道tomcat NIO连接器的内部结构.当我们创建一个实现CometProcessor的servlet时,线程究竟是如何使用的呢?它仍然是每个连接一个线程吗?

从我读到的,谈话就像这样

  1. 客户端连接到servlet

  2. Servlet会挂起连接,直到连接的客户端可以获得任何数据

  3. 数据准备就绪后,服务器会写入httpResponse并将其刷新.这实际上断开了连接?

  4. 客户端发送另一个服务器再次挂起的请求.

当这种情况持续发生时会使用多少个线程?

tomcat nio

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

如何找到$ CATALINA_HOME的值?

我必须Connnector/J$CATALINA_HOME/lib Tomcat7中复制JAR Amazon EC2.如何$CATALINA_HOME/lib在Amazon EC2中找到Amazon Linux上的完整路径?

tomcat tomcat7

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

由非随机哈希函数引起的应用程序漏洞

以下摘录来自一篇解释由于哈希数据结构中使用的非随机哈希函数而导致拒绝服务(DoS)攻击的可能性的文章.

[...]可以通过利用底层散列算法中的可预测冲突来利用条件.

为了验证它,我经历了Oracle的Java HashMap的参考实现,并且确实发现了一个使用的静态哈希函数:

    static int hash(int h) {
       h ^= (h >>> 20) ^ (h >>> 12);
       return h ^ (h >>> 7) ^ (h >>> 4);
    }
Run Code Online (Sandbox Code Playgroud)

关于该主题的另一篇论文说:

Tomcat 6.0.32服务器在大约44分钟的i7 CPU时间内解析2 MB的冲突密钥串,因此大约6 kbit/s的攻击者可以使一个i7核心不断忙碌.如果攻击者有千兆连接,他可以保持大约100.000个i7核心忙

我们如何防范此漏洞.此外,对于许多软件,我们使用的是依赖于此实现的开源(Tomcat等).

java security ddos

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

在Tomcat 8中将外部资源添加到类路径

我有一个Tomcat应用程序,需要引用应用程序外部的一些属性文件.通常这些存储在特定地方的本地机器上C:\PROJECT_NAME\conf\.

在Tomcat 7中,这可以通过放置一个context.xml文件来实现,/META-INF/其中使用了一个VirtualWebappLoader实际上将此位置添加到应用程序类路径的文件,如下所示:

<Context>
    <Loader className="org.apache.catalina.loader.VirtualWebappLoader"
        virtualClasspath="/PROJECT_NAME/conf"
        searchVirtualFirst="true" />
</Context>
Run Code Online (Sandbox Code Playgroud)

如何在Tomcat 8中实现同样的功能?

java tomcat classpath tomcat8

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

Java密码套件

我正在尝试使用SSLSocketFactory.getSupportedCipherSuites()来确定返回密码套件的顺序 - 它似乎在Java 1.6和Java 1.7之间有所不同.

我认为这很容易确定,但遇到了一些问题.首先,这是我正在使用的代码:

SSLContext context = SSLContext.getDefault();
SSLSocketFactory sf = context.getSocketFactory();
String[] cipherSuites = sf.getSupportedCipherSuites();
Run Code Online (Sandbox Code Playgroud)

非常直接(如果我做了一些愚蠢的事情,请纠正我).所以,我认为(使用eclipse)我可以进入getSupportedCipherSuites()方法,但似乎源代码不是那样做的(这有什么原因吗?).我在jsse.jar中找到了这个类,并使用JD-Eclipse对它进行了反编译.然而,这给了我一个抽象类,我无法看到抽象类的具体实现(我发现可以使用属性"ssl.SocketFactory.provider"设置类,但这还没有在java.security中指定).我还无法确定如何使用"javax.net.debug"属性打开登录(这会消失为本机方法).

有人能指出我哪里错了吗?

java ssl

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

Spring Ioc容器如何与Tomcat容器交互

我熟悉Spring Framework并且已经完成了一些工作.

在我的一次访谈中,我被问到"在Apache Tomcat中部署了一个Web应用程序;告诉我"Tomcat容器"(用于servlet)如何与"Spring IoC容器"(用于Spring bean)进行交互?

我无法理解采访者的意思是什么,并且无言以对.有人可以澄清一下这个问题的内容以及它的合理答案是什么?

java spring tomcat ioc-container

7
推荐指数
1
解决办法
2750
查看次数

服务tomcat8无法启动服务tomcat8启动

我正在使用Vagrant部署到Ubuntu Linux并尝试启动tomcat8服务.

Tomcat 8安装了apt-get install tomcat8.

使用该service tomcat8 start命令时,出现以下错误:

tomcat8.service的作业失败.有关详细信息,请参阅"systemctl status tomcat8.service"和"journalctl -xe".

然后我跟踪了systemctl status tomcat8.service,发现:


?tomcat8.service - LSB:启动Tomcat.加载:加载(/etc/init.d/tomcat8)
活动:失败(结果:退出代码)自星期一2016-03-28 09:44:17 GMT; 5s ago
Docs:man:systemd-sysv-generator(8)
进程:884 ExecStop = /etc/init.d/tomcat8 stop(code = exited,status = 0/SUCCESS)
进程:1312 ExecStart =/etc/init.d/tomcat8 start(code = exited,status = 1/FAILURE)
Mar 28 09:44:12 vagrant-ubuntu-trusty systemd [1]:启动LSB:启动Tomcat ....
Mar 28 09:44:12 vagrant-ubuntu -trusty tomcat8 [1312]:*启动Tomcat servlet引擎tomcat8
3月28日09:44:17 vagrant-ubuntu-trusty tomcat8 [1312]:...失败!
3月28日09:44:17 vagrant-ubuntu-trusty systemd [1]:tomcat8.service:控制进程退出,代码=退出状态= 1
3月28日09:44:17 vagrant-ubuntu-trusty systemd [1]:无法启动LSB:启动Tomcat ..
3月28日09:44:17 …

linux ubuntu tomcat vagrant tomcat8

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

如何从参数化类型方法参数中获取参数化类型类?

考虑这个人为的类:

import java.util.List;
public class Test {
    public String chooseRandom(List<String> strings) {
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

使用反射检查此方法时,如何在查看 的参数时获取Class表示的对象java.lang.String(甚至字符串"java.lang.String"chooseRandom

我知道 Java 在编译时擦除类型,但它们必须仍然存在,因为javap可以正确打印它们。javap在这个编译的类上运行会导致:

Compiled from "Test.java"
public class Test {
  public Test();
  public java.lang.String chooseRandom(java.util.List<java.lang.String>);
}
Run Code Online (Sandbox Code Playgroud)

java.util.List( java.lang.String)的参数化类型绝对可用......我只是不知道它是什么。

我试过这个:

Class clazz = [grab the type of chooseRandom's parameter list's first argument];
String typeName = clazz.getName();
TypeVariable[] genericTypes = clazz.getTypeParameters();
if(null != genericTypes && 0 < genericTypes.length)
{
    boolean …
Run Code Online (Sandbox Code Playgroud)

java generics reflection parameters

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