Java 如果找不到SecurityManager,这是否意味着我无法设置属性?

Java 如果找不到SecurityManager,这是否意味着我无法设置属性?,java,ssl,redhat,executable-jar,java-security,Java,Ssl,Redhat,Executable Jar,Java Security,我觉得我所面临的问题是由于事情应该如何配置,我不确定该如何配置 在dev系统上运行可执行的.jar文件时,我们通过System.setProperty设置密钥库和信任库的位置。这是因为我们能够与数据库服务器通信并获取数据 在生产系统上运行可执行的.jar文件时,我们无法通过System.setProperty设置密钥库和信任库的位置。当调试打开并显示1时,这一点很明显。我们的密钥库和2没有任何内容。信任库的位置错误,因此我们无法与数据库服务器通信 我一直试图通过java代码设置值,并将调用中的值

我觉得我所面临的问题是由于事情应该如何配置,我不确定该如何配置

在dev系统上运行可执行的.jar文件时,我们通过System.setProperty设置密钥库和信任库的位置。这是因为我们能够与数据库服务器通信并获取数据

在生产系统上运行可执行的.jar文件时,我们无法通过System.setProperty设置密钥库和信任库的位置。当调试打开并显示1时,这一点很明显。我们的密钥库和2没有任何内容。信任库的位置错误,因此我们无法与数据库服务器通信

我一直试图通过java代码设置值,并将调用中的值传递给jar本身,即
java-jar-Djavax.net.ssl.keyStore=/path/keyStore

有人能提供我应该调查的任何可能的事情吗? 我也一直在研究java.policy和java.security文件,但它们实际上都没有任何内容,我们家里也没有人可以找到答案

--更新--
在使用调试的生产系统上,没有为密钥库位置设置任何内容,并且信任库路径似乎指向其他位置。

生产服务器上的路径可能不同?(您的意思是信任库的“位置错误”,这意味着您确实更改了信任库的默认位置。因此,设置属性有效。这表明路径错误)很抱歉,让我在上面进一步澄清生产服务器。生产服务器上是否有其他代码使用那些
javax.net.ssl.*
系统属性(是否有任何东西初始化默认的
SSLContext
),甚至是隐式的(也就是说,是否还有其他东西可以在不使用自己的自定义
SSLContext
的情况下建立SSL/TLS连接?获取属性的代码是什么样子的?没有安全管理器(即
System.getSecurityManager()==null
)仅仅意味着您的代码可以执行它想要的任何操作,包括
System.getProperty()
。如果SecurityManager不为null,则代码的权限将受到设置的策略文件的限制。