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

时间:2015-08-27 17:24:21

标签: java linux jar terminal javac

我在CentOS 7服务器上有一个位于Test.java的java程序/path/to/parent如何编译它以便可以使用.class命令从.jar成功调用生成的/path/to/parentjava文件?我正在尝试尽可能保持/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那么如何更改上述内容以便我可以使用/path/to/parent命令从java成功调用该程序,而不会使/path/to/parent混乱?

1 个答案:

答案 0 :(得分:1)

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