小编Kev*_*ner的帖子

传递包含空格的 JVM 属性(通过 -D)

我有一个 docker 应用程序,它从命令行在内部运行一个 java jar。我已将 docker 容器设置为通过“其他 java 选项”,在这种情况下,我想通过以下内容:

jdk.certpath.disabledAlgorithms=MD2, MD5, RSA keySize < 128, DSA keySize < 128, EC keySize < 128
Run Code Online (Sandbox Code Playgroud)

我希望能够通过 -Djdk.etc 传递它,但这些空间似乎真的把事情搞砸了。有了空格,java 抱怨它不知道如何处理 MD5 及更高版本(“错误:无法找到或加载主类 MD5,”。没有空格,我会收到关于keySize<成为未知主类的错误。

有人可以帮助我以正确的方式传递这个参数吗?我试过用引号将整件事括起来,但结果是一样的。

java jvm-arguments

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

为什么这个 msiexec.exe 命令在 powershell 中不起作用?

我正在尝试通过 powershell 在高级安装程序生成的安装程序调用的脚本中执行以下命令。问题在于,当脚本执行时,它在调用 MSIEXEC.exe 时窒息。更具体地说,它会显示 msiexec 帮助屏幕的 Windows 对话框。

好吧,也许它不喜欢高级安装程序执行它的方式。所以我采取了导致问题的实际路线:

msiexec.exe /q /i 'C:\Users\ADMINI~1\AppData\Local\Temp\mongo-server-3.4-latest.msi' INSTALLLOCATION='C:\Program Files\MongoDB\Server\3.4\' ADDLOCAL='all'
Run Code Online (Sandbox Code Playgroud)

当我直接在 powershell 中执行这个时,我仍然得到同样愚蠢的帮助屏幕。我已经尝试了这个命令行的所有可能的变体:

  • /a 和 /passive 而不是 /i 和 /q
  • 带双引号
  • 带单引号
  • 未引用的 msi
  • 在管理员提升的 shell 中
  • 在普通特权 shell 中
  • 位于桌面上的 msi 而不是临时文件夹
  • 如果已经安装,使用 /x 卸载

在所有情况下,我都会看到该死的“帮助”对话框。唯一似乎有所不同的是我是否省略了 INSTALLLOCATION 和 ADDLOCAL 选项。(这些显然是按照此处找到的“无人值守安装第 2 部分”使用:https : //docs.mongodb.com/tutorials/install-mongodb-on-windows/)。在这种情况下,它只是安静地退出而不安装任何东西。

老实说,我整个下午都在用头撞墙。

顺便说一下,我以如此荒谬的方式安装 mongo 的原因是我需要一种方法来为我公司的产品安装单一安装系统。这取决于 Mongo,我们必须让它作为服务器运行并使用身份验证,所以我必须有脚本来创建管理员和数据库用户并将其置于身份验证模式。由于我需要知道 mongo 的安装位置(以执行 mongod.exe 和 mongo.exe),因此我需要先向用户查询位置,然后将安装位置传递给 mongo 安装程序。如果我在这里完全偏离轨道,请告诉我有更好的方法。谢谢

编辑:我忘了提到我编写了完整的 powershell 脚本并在尝试通过高级安装程序执行它之前对其进行了测试。该脚本一直有效,直到我尝试通过安装程序运行它。奇怪的是我现在仍然无法手动执行命令。

powershell windows-installer mongodb

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

在尝试访问nexus私有存储库时,maven收到"Not Authorized"

我在EC2实例上设置了一个私有nexus repo管理器,并按照互联网上的各种说明,了解如何设置maven项目来使用它.我也禁用了匿名帐户.我能够通过连接和复制存储库curl -U username:password <the_url> ,它似乎工作正常.然而,当我尝试使用maven(任何目标)时,我得到的第一件事就是

    [WARNING] Could not transfer metadata org.apache.maven.plugins:maven-compiler-plugin/maven-metadata.xml from/to nexus (http://MY_NEXUS_HOST:8081/nexus/content/groups/public): Not authorized , ReasonPhrase:Unauthorized.
Run Code Online (Sandbox Code Playgroud)

然后mvn命令失败,因为它无法在任何地方找到插件.所以我可以使用rest命令并且它按预期工作,但不是通过maven这一事实告诉我,这是配置问题.我想我明白发生了什么,我检查并重新检查了文件,但我没有看到任何错误.这是settings.xml文件

<servers>
  <server>
      <id>nexus-snapshot</id>
      <username>USER_NAME</username>
      <password>USER_PASSWD</password>
  </server>
  <server>
      <id>nexus-release</id>
      <username>USER_NAME</username>
      <password>USER_PASSWD</password>
  </server>

</servers>
<mirrors>
    <mirror>
      <!--This sends everything else to /public -->
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>
      <url>http://MY_NEXUS_HOST:8081/nexus/content/groups/public</url>
    </mirror>
  </mirrors>
  <profiles>
    <profile>
      <id>nexus</id>
      <!--Enable snapshots for the built in central repo to direct -->
      <!--all requests to nexus via the mirror -->
      <repositories>
        <repository>
          <id>central</id>
          <url>http://central</url>
          <releases>
              <enabled>true</enabled>
          </releases>
          <snapshots>
              <enabled>true</enabled>
          </snapshots>
        </repository> …
Run Code Online (Sandbox Code Playgroud)

nexus maven

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