【问题标题】:calling a java program from CentOS 7 terminal从 CentOS 7 终端调用 java 程序
【发布时间】:2023-03-05 02:35:01
【问题描述】:

我正在使用the code from this tutorial 来测试 JDBC 连接。我将类的名称更改为 TestJDBC,并更改了数据库名称和查询,但除此之外它是相同的。当我在我的 devbox 上的 eclipse 中将类作为 Java 应用程序运行时,程序运行正常。但是,当我将文件复制到远程CentOS 7 服务器上的/home/username/ 时,在终端中输入java TestJDBC.java 会产生以下错误:

Error: Could not find or load main class TestJDBC.java

当我尝试java TestJDBC 以及上传.class 文件以及.java 文件时,我也遇到了同样的错误。 我还需要做什么才能从 CentOS 7 终端调用 Java 类?

请注意,javac TestJDBC.java 的结果是 -bash: javac: command not found。我确实尝试了java somepackage.TestJDBC,结果与上面的Error: Could not find or load main class TestJDBC.java 相同。

答案说明: 答案需要使用 yum 获得 openJDK 的开发版本。 PATH 变量不是解决方案的一部分。 但是,我将下面的答案标记为已接受,因为提交它的用户对解决方案做出了重大贡献。

【问题讨论】:

    标签: java linux jdbc terminal centos


    【解决方案1】:

    编译后应该可以运行了

    javac TestJDBC.java
    java TestJDBC
    

    注意,从命令行运行时不需要添加.class

    如果这仍然不起作用,请粘贴您的代码。

    请求后编辑

    所以您现在已经声明您的 PATH 中缺少 javac。我会告诉你如何添加它:

    $> export JAVA_HOME=/path/to/jdk/jdk.1.8.0_20
    $> export PATH=$PATH:$JAVA_HOME/bin
    

    运行验证

    javac -version
    

    它应该打印类似

    javac 1.8.0_20
    

    【讨论】:

    • @CodeMed 您的问题缺少太多信息,无法让我发布更好的答案。你说它有一个主要的方法,它不会运行......就是这样。但是,我看到您对问题的编辑,我想请您将 jdk/JAVA_HOME 附加到您的 PATH 变量中。这样您就可以直接致电javac。你需要在运行之前编译你的类。
    • @CodeMed 如果您不确定 java 的路径,请尝试 $> which java$> whereis java
    • @CodeMed 应该是相同的命令...首先导出 JAVA_HOME 变量,指向 /usr/lib/jvm/jre-1.7.0-openjdk 然后像我一样将变量附加到您的路径描述。我已经很长时间没有使用 openjdk 了,所以我不是 100% 熟悉它。我会说获得 Oracle 版本
    • @CodeMed which java 显示了什么?你也可以试试find /usr/lib/jvm -name javac,应该会显示所有javac文件的路径。
    • @CodeMed 我同意 Robin Jonsson,为什么不获取 Oracle 版本?
    猜你喜欢
    • 2015-04-13
    • 2015-04-14
    • 1970-01-01
    • 2012-01-23
    • 2014-02-02
    • 1970-01-01
    • 2012-02-10
    • 2019-04-22
    • 2021-03-08
    相关资源
    最近更新 更多