我想在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插件目录的路径放入类路径中,但仍然没有。
答案 0 :(得分:1)
您必须在类路径上指定外部JAR。
java -cp path/some.jar; etc.
您正在使用属于Eclipse本身的类。你可以挖出他们的JAR,但这通常不是一个好主意。 generateUUID()似乎用于根据文件内容在源文件中创建UUID,这是一个IDE功能。
答案 1 :(得分:0)
首先确保jar位于该路径中,名称与ls ..\lib
或dir ..\lib
完全相同。然后使用命令(使用正确的路径):
javac -classpath "..\lib\org.eclipse.emf.ecore_2.13.0v28170609-0707.jar" MakeUniqIDs.java
另请注意,您已导入org.eclipse.emf.common.notify.Notifier;
,并且该类位于jar org.eclipse.emf.common
而不是ecore
中,您可以删除该行(因为您没有使用它)或添加jar用;
分隔。
示例:
javac -classpath "..\lib\org.eclipse.emf.ecore_2.13.0v28170609-0707.jar;..\lib\org.eclipse.emf.common_2.13.0v28170609-0707.jar" MakeUniqIDs.java