如何从给定文件夹将 java 程序编译为 运行?

how can i compile a java program to run from a given folder?

我有一个 java 程序 Test.java 位于 CentOS 7 服务器上的 /path/to/parent我如何编译它以便使用 java 命令从 /path/to/parent 成功调用生成的 .class.jar 文件?我试图让 /path/to/parent 尽可能干净,而不用可以放在子目录中的文件弄乱它。另请注意,该程序需要许多依赖项,这些依赖项位于 /path/to/parent/dependencies/

这是我目前的情况:

Test.java 的代码是:

package somepackage;  

public class Test{
    public static void main(String[] args){
        int index;
        for (index = 0; index < args.length; ++index){
            System.out.println("args[" + index + "]: " + args[index]);
        }
    }
}

当终端指向 /path/to/parent/ 时,我输入以下内容来编译 Test.java

javac -d bin -cp .:"/path/to/parent/dependencies/*" Test.java

然后我可以导航到 /path/to/parent/bin 并通过键入以下内容成功 运行 程序:

java -cp .:"/path/to/parent/dependencies/*" somepackage.Test arg0 arg1

但是,我不能 能够运行 来自/path/to/parent 的程序,因为尝试这样做会出现错误:Could not find or load main class somepackage.Test那么我该如何更改以上内容,以便我可以使用 java 命令从 /path/to/parent 成功调用程序,而不会使 /path/to/parent 混乱?

使用java -cp "/path/to/parent/bin":"/path/to/parent/dependencies/*" mainpackage.Test arg0 arg1到运行它。