Eclipse之外的类路径问题

时间:2018-03-29 19:01:29

标签: java eclipse

我想在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插件目录的路径放入类路径中,但仍然没有。

2 个答案:

答案 0 :(得分:1)

您必须在类路径上指定外部JAR。

java -cp path/some.jar; etc.

您正在使用属于Eclipse本身的类。你可以挖出他们的JAR,但这通常不是一个好主意。 generateUUID()似乎用于根据文件内容在源文件中创建UUID,这是一个IDE功能。

答案 1 :(得分:0)

首先确保jar位于该路径中,名称与ls ..\libdir ..\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