如何从给定文件夹将 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
到运行它。
我有一个 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
到运行它。