gpt4 book ai didi

java - 我可以使用 ssh 运行 java jar 程序吗?

转载 作者:行者123 更新时间:2023-11-30 05:54:33 25 4
gpt4 key购买 nike

我想使用 ssh 运行 Java 程序,我已经复制了私钥,并且可以运行简单的 Linux 命令。

如果从服务器运行此命令,我可以看到所有目录

ssh user@192.168.1.2 pwd

但是我想运行一个 Java jar 应用程序,如下所示:

ssh user@192.168.1.2 java -Djava.library.path=myapp/. classpath=myapp/myapp.jar:. myClass

这就是我在客户端计算机上运行应用程序的方式:

java -Djava.library.path=myapp/. classpath=myapp/myapp.jar:. myClass

我得到这个错误,显然,java已经安装了

java: command not found

最佳答案

最可能的问题是 java 命令不在 user 帐户的命令搜索路径上。

  1. user 身份登录客户端计算机,然后输入 java -version。如果它显示“command not find”,则无可争议地证明java不在用户的命令搜索路径上。

  2. 使用您知道可以运行 java 的帐户登录客户端计算机。现在运行 java -version 来确认这一点。假设它有效,请运行 which java 来查找 java 命令的路径。 (如果它不起作用,那么您可能对 Java 的安装有误。或者至少……关于它的安装正确。)

  3. 在客户端计算机上,计算出“myapp”目录的绝对路径是什么。检查“myapp”目录及其内容是否可由“用户”读取。

  4. 从服务器尝试运行应用程序,如下所示:

      ssh user@192.168.1.2 /path/to/java \
    -Djava.library.path=/path/to/myapp \
    -classpath /path/to/myapp/myapp.jar myClass

    注释:

    • 如果 java 不在用户的命令搜索路径上,则使用 java 命令的绝对路径名。事实上,如果您担心用户可能将 java 命令“别名”为其他命令,那么无论如何都建议使用绝对路径。
    • 使用绝对路径安装 myapp ...以避免用户移动、替换等问题。
    • 类路径选项的语法与您向我们展示的不同
    • 类路径上不应包含 .,除非您的 Java 应用期望从用户的主目录加载其他 Java 代码。
<小时/>

Obviously, java is installed ...

为什么这么明显?

你怎么知道的?你能保证所有客户端机器都这样吗?你能保证“用户”不会乱搞事情吗?

您确定 Java 安装正确吗?例如,您已将其安装在用户的“默认”命令搜索路径上的位置?

在这种情况下,您需要检查/仔细检查您的所有假设。小心。有条不紊。问题通常是您忽略的“显而易见”的问题。

(人都会犯错误……如果你不犯错误的话,效果会适得其反。)

关于java - 我可以使用 ssh 运行 java jar 程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53393563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com