在添加了另外两个外部jars (org.restlet.ext.simple.jar和org.simpleframework.jar)之后,下面是我的.classpath文件:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="lib" path="../3rd_party/restlet-jse-2.0.10/lib/org.restlet.ext.jackson.jar" sourcepath="C:/Program Files/Java/restlet-jse-2.0.10/src">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Program Files/Java/restlet-jse-2.0.10/docs/ext/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="../3rd_party/restlet-jse-2.0.10/lib/org.restlet.ext.ssl.jar" sourcepath="C:/Program Files/Java/restlet-jse-2.0.10/src">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Program Files/Java/restlet-jse-2.0.10/docs/ext/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="../3rd_party/restlet-jse-2.0.10/lib/org.restlet.jar" sourcepath="C:/Program Files/Java/restlet-jse-2.0.10/src">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Program Files/Java/restlet-jse-2.0.10/docs/api"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="../3rd_party/restlet-jse-2.0.10/lib/org.jsslutils_1.0/org.jsslutils.jar"/>
<classpathentry kind="lib" path="../3rd_party/restlet-jse-2.0.10/lib/org.codehaus.jackson_1.4/org.codehaus.jackson.core.jar"/>
<classpathentry kind="lib" path="../3rd_party/restlet-jse-2.0.10/lib/org.codehaus.jackson_1.4/org.codehaus.jackson.mapper.jar"/>
<classpathentry kind="lib" path="../3rd_party/guice-3.0/aopalliance.jar"/>
<classpathentry kind="lib" path="../3rd_party/guice-3.0/guice-3.0.jar"/>
<classpathentry kind="lib" path="../3rd_party/guice-3.0/javax.inject.jar"/>
<classpathentry kind="lib" path="C:/dev/poc/3rd_party/restlet-jse-2.0.10/lib/org.restlet.ext.simple.jar" sourcepath="C:/Program Files/Java/restlet-jse-2.0.10/src">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Program Files/Java/restlet-jse-2.0.10/docs/ext/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="C:/dev/poc/3rd_party/restlet-jse-2.0.10/lib/org.simpleframework_4.1/org.simpleframework.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>请注意,它们是使用绝对路径添加的,这与使用相对路径的其他条目不同,但这只是因为每次添加新的外部jars时我都会手动编辑此文件。
我的问题是,我能否以某种方式告诉Eclipse使用新添加的外部jars的相对路径?
谢谢。
发布于 2011-11-30 05:34:15
一种解决方案是不使用外部Jar,而是将您的Jar放入项目中,然后使用Add Jar(s)而不是Add external Jar(s)。
从源代码控制的角度来看,这是有意义的,您可以在需要时添加/删除依赖项。这也意味着,当您为一个单独的项目更新一个jar时,它不会影响这个项目。
我们在过去已经做到了这一点,我们有一个包含所有jars的单一项目,这些jars在其他项目的构建路径中被引用。
但是现在我们使用了maven,所以我们不再需要这样做了。
发布于 2011-11-30 05:32:37
在eclipse中,右键单击项目,选择属性,然后选择Java Build Path,Libraries选项卡,并选择"Add Jars"...这将使用添加一个相对路径。"Add External JARs“将的jar添加到一个绝对路径,这不是您想要的。
发布于 2018-07-12 17:30:49
如果您的路径是相对于Eclipse安装的,那么使用“Add Variable…”声明它们。按钮(在项目→→Build Path→Libraries中)。在那里,应该为您提供一个名为ECLIPSE_HOME的变量,然后您可以扩展它。这将在您的.classpath中生成一个“kind=var”条目(而不是“kind=lib”)。
<classpathentry kind="var" path="ECLIPSE_HOME/...如果您的路径是相对于其他位置的,您可以声明自己的变量(配置变量)。这样,当您的工作空间发生变化或有人复制了它时,您只需更新这些变量。这通常比真正的以一个或两个点开头的相对路径更清晰。
https://stackoverflow.com/questions/8317957
复制相似问题