如果你是在 linux 系统下在 Eclipse 中开发 Java 项目,你可能希望从另一个位置远程访问该项目。你可以使用 teamviewer 远程桌面 linux box,但有时这可能非常慢。你还可以从常规 ssh 终端编辑、编译和执行 Java 项目。使用终端编辑、编译和运行远程 eclipse 项目通常更快。这篇文章向你展示了如何在终端中编译和运行 eclipse 项目。
使用的命令行
基本上,你需要以下两个命令。-cp 选项配置类路径,该路径指向所使用的类文件和 jar 文件。如果使用多个库,每个库都应该包含在内并用“:”分隔。
javac -cp “all jar file’s path” package/target.java java -cp “all jar file’s path” package.targetjavac -cp "/home/pc/workspace/TerminalEclipse/lib/commons-io-2.4.jar:
/home/pc/workspace/TerminalEclipse/lib/commons-lang-2.5.jar" package1/Test.java
一个示例 Eclipse 项目
下面我在eclipse下创建了一个Java项目。该项目包含一个类Test,该类位于package1. 本Test类使用/ lib下/某些第三方库。
首先,cd 到 /src/ 目录,并使用以下命令编译项目。
javac -cp "/home/pc/workspace/TerminalEclipse/lib/commons-io-2.4.jar: /home/pc/workspace/TerminalEclipse/lib/commons-lang-2.5.jar" package1/Test.java
其次,使用以下命令运行项目。
java -cp ".:/home/xiaoran/workspace/TerminalEclipse/lib/commons-io-2.4.jar: /home/xiaoran/workspace/TerminalEclipse/lib/commons-lang-2.5.jar" package1.Test
*注:路径的第一部分是.指向当前路径。
编译过程会在/src/目录下生成.class文件。当你再次使用 eclipse 时,你可能希望删除它。
潜在问题
如果你正在开发一个大型项目,你可能会使用很多第三方库。你可以使用以下代码生成路径字符串。
public static void printAllJars(){
String str = "/home/pc/workspace/TerminalEclipse/lib";
File file = new File(str);
StringBuilder sb = new StringBuilder();
File[] arr = file.listFiles();
for(File f: arr){
if(f.getName().endsWith(".jar")){
sb.append(f.getAbsolutePath() + ":");
}
}
String s = sb.toString();
s = s.substring(0, s.length()-1);
System.out.println(s);
}