【问题标题】:classpath issues outside of EclipseEclipse 之外的类路径问题
【发布时间】: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 目录

标签: java eclipse


【解决方案1】:

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

java -cp path/some.jar; etc.

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

【讨论】:

  • @Vasan 你是对的,但是 -cp 也是 javac 的一部分。
【解决方案2】:

首先确保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

【讨论】:

  • 非常感谢!我打错了第一个 .jar 文件名——感谢您建议 dir/ls!
  • @BrianNolan 不客气,发生了。尽可能使用tab
猜你喜欢
  • 2011-08-01
  • 2023-03-20
  • 2011-02-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-22
  • 2017-02-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多