【发布时间】:2018-03-29 19:01:29
【问题描述】:
我尝试在 Windows 命令行 (Windows 7) 上运行一段非常简单的代码。它在 Eclipse 中运行良好。
我已阅读How to make javac find JAR files? (Eclipse can see them)
和
https://docs.oracle.com/javase/1.5.0/docs/tooldocs/windows/classpath.html#Understanding
但显然我错过了什么或误解了什么。
代码如下:
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.common.notify.Notifier;
public class MakeUniqIDs {
public static void main(String[] args) {
for (int i=0; i<10; i++){
System.out.println(EcoreUtil.generateUUID());
}
}
}
当我尝试使用 javac 编译它时,我收到以下错误消息:“MakeUniqIDs.java:1: error: package org.eclipse.emf.ecore.util 不存在”
我在上述代码所在的 src 目录中,并使用以下代码尝试编译它: javac -classpath "..\lib\org.eclipse.emf.ecore_2.13.0v28170609-0707.jar" MakeUniqIDs.java
我把jar文件放到lib目录下,也试过把eclipse plugins目录的路径放到classpath下,还是不行。
【问题讨论】:
-
如果你使用 -classpath 参数,你必须列出所有需要的 jar 文件,而不是它们的目录。如果您使用 ..\lib 之类的相对路径,它必须相对于您运行命令的当前目录。 JAR 文件内容是查找类的根目录而不是 jar 文件所在的目录。
-
我认为上面的类路径是我放在 lib 目录中的 jar 文件。 ..\lib 相对于我运行命令的位置。所以我仍然不确定我错过了什么。感谢您的帮助!
-
“我认为,对于我放在 lib 目录中的 jar 文件”,您还必须在 -classpath 中拥有该 jar 文件,而不仅仅是 lib 目录