标签: classpath

如何在Eclipse启动配置中使用变量进行类路径定义?

在我们的项目中,我们使用受版本控制的Eclipse启动配置与所有开发人员共享.现在有必要将外部存档包含到启动配置文件的类路径中.幸运的是,所需的存档位于每个开发人员的本地Maven存储库中.

我已经发现有一个名为M2_REPO的类路径变量引用了本地Maven存储库(对任何开发人员都有效).

但是如何在以下类路径定义中使用此变量来替换绝对路径?

<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
    ...
    <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;runtimeClasspathEntry externalArchive=&quot;C:/Dokumente und Einstellungen/050967/.m2/repository/com/google/gwt/gwt-dev/2.0.3/gwt-dev-2.0.3.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;"/>
    ...
</listAttribute>
Run Code Online (Sandbox Code Playgroud)

或者有没有办法包含环境变量(例如Windows' %USERPROFILE%可以帮助)?

eclipse classpath maven

10
推荐指数
1
解决办法
2万
查看次数

使用SBT中的类路径创建脚本

我想让SBT创建一个文件并为特定阶段编写项目的运行时完整类路径(scala,托管和非托管库,项目类)(在本例中,仅用于compile).

我试图复制我用Maven做的事情,使用maven-antrun-plugin:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-antrun-plugin</artifactId>
      <version>1.6</version>
      <executions>
        <execution>
          <id>generate-runner</id>
          <phase>package</phase>
          <configuration>
            <target>
              <property name="runtime_classpath" refid="maven.runtime.classpath" />
              <property name="runtime_entrypoint" value="com.biasedbit.webserver.Bootstrap" />

              <echo file="../../bin/run-server.sh" append="false">#!/bin/sh
java -classpath ${runtime_classpath} ${runtime_entrypoint} $$*
              </echo>
            </target>
          </configuration>
          <goals>
            <goal>run</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

我怎么能用SBT做到这一点?

scala classpath sbt

10
推荐指数
1
解决办法
3600
查看次数

了解Eclipse类路径声明

我正在尝试理解Eclipse类路径文件,特别是,我想知道这个:

  1. JRE如何使用它(即JVM是直接读取这个xml文件,还是eclipse以某种方式将其提供给它的内部编译器)?

  2. 当我从IDE运行我的类时,如何解析复杂条目(如下面的常春藤路径)并将其合并到JVM ClassLoader中?

上下文:我有一个奇怪的错误,就是eclipse正在使用类的"错误"版本,而我的ivy/ant版本正在使用正确的版本,因此我希望使用Eclipse工具来更好地模仿我纯粹使用的类加载器建立.为了做到这一点,我想我将不得不看看Eclipse项目/类路径文件.

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="src" path="test"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
    <classpathentry kind="lib" path="conf"/>
    <classpathentry kind="con" path="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?ivyXmlPath=ivy.xml&amp;confs=*"/>
    <classpathentry kind="output" path="build"/>
</classpath>
Run Code Online (Sandbox Code Playgroud)

java eclipse ant classpath ivy

10
推荐指数
1
解决办法
2万
查看次数

Java类路径 - Linux

我试图了解classpath如何真正起作用.在网上搜索之后,这是我到目前为止所处的位置:

我已经添加了

export CLASSPATH="/home/foo:/home/foo/Java_code/my_code"
Run Code Online (Sandbox Code Playgroud)

在/etc/environment.我顺便运行Ubuntu.

Java找到路径并编译没有问题.

问题是,如果我更改CLASSPATH然后我执行:source /etc/environment,则不应用新的CLASSPATH.当且仅当我重新启动系统时才应用它.例如,如果我删除

export CLASSPATH="/home/foo:/home/foo/Java_code/my_code"
Run Code Online (Sandbox Code Playgroud)

线,然后我做源/ etc /环境,我终于做了echo $CLASSPATH,我得到的是/home/foo:/home/foo/Java_code/my_code.我想我应该得到一个空行,不是吗?

有没有办法立即应用PATH或CLASSPATH变量中的更改而不必重新启动系统?

它可能会帮助您知道/ etc/environment文件最初只包含以下行:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
Run Code Online (Sandbox Code Playgroud)

感谢您的时间.

java linux ubuntu classpath

10
推荐指数
2
解决办法
6万
查看次数

如何在eclipse中创建新的android项目并在本地git存储库中共享?

我使用该向导在Eclipse Juno中使用Android SDK Tools修订版20.0.3在构建SDK 15和最低要求的SDK 15中创建一个新的Android项目.这些文件是使用活动,清单等的示例代码生成的.我尝试过不同的模板(在此过程中,与MasterDetail或带有标签的BlankActivity一样),有时会出现AndroidManifest.xml或带有重复XML元素的activity_main.xml等问题.所以我手动修复了这些问题(我认为这是向导的错误).

现在,我希望通过EGIT"团队分享"项目.所以我右键单击项目和"Team-> Share Project-> git".此时,它希望我选择一个存储库.我在Eclipse工作区外创建了一个新的(并在创建后重新使用它).(我也尝试在父目录中创建一个(即在工作区中尽管Eclipse警告不这样做).

无论哪种方式,当共享操作完成时,库"Android Dependencies"的构建路径在工作区中指定的位置没有"android-support-v4.jar".似乎在egit操作之后,项目目录似乎已被移动到存储库,但.classpath文件没有更改.

这是egit应该如何工作(在git repo中移动项目工作区并告诉Eclipse项目目录在新位置)?是手动修复构建路径的唯一解决方法吗?

是否有不同的方法在Eclipse中创建新的android项目,然后将相关文件(即排除生成的java文件)放入本地git存储库,以便Eclipse EGIT工作?

eclipse android classpath egit

10
推荐指数
1
解决办法
8637
查看次数

Spring内部的war无法在内部jar文件中找到classpath资源

我有一个像这样组织的项目:

core
  -- /src/main/resources/company/config/spring-config.xml
webapp
  -- /WEB-INF/applicationContext.xml
Run Code Online (Sandbox Code Playgroud)

webapp取决于我在部署时core.jar正确包含的内容WEB-INF/lib.

在web.xml我有:

<param-value>
    /WEB-INF/applicationContext.xml
</param-value>
Run Code Online (Sandbox Code Playgroud)

在applicationContext.xml我有:

<import resource="classpath:/company/config/spring-config.xml" />
Run Code Online (Sandbox Code Playgroud)

但是当我跑步时,我收到了这个错误:

2012-10-04 20:03:39,156 [localhost-startStop-1] springframework.web.context.ContextLoader ERROR: Context initialization failed
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from URL location [classpath:/company/config/spring-config.xml]
Offending resource: ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [company/config/spring-config.xml]; nested exception is java.io.FileNotFoundException: class path resource [company/config/spring-config.xml] cannot be opened because it does not exist
    at …
Run Code Online (Sandbox Code Playgroud)

spring tomcat war classpath

10
推荐指数
1
解决办法
2万
查看次数

如何在类路径中放置javaagent的类

我正在尝试开发一个javaagent,它可以在asm-4的帮助下编写代码.现在我遇到了一个非常基本的问题,javaagent的类加载器没有看到asm依赖,因此失败了.我是否必须提供一个jar-with-dependencies(又名maven build plugin),它包含代理所需的所有类,或者是否有另一种方法将类添加到java代理?直接在类路径中引用jar asm-all.jar没有帮助.构建jar-with-dependencies最初没有帮助,因为无法使用程序集插件设置Premain-Class属性.感谢帮助;-)

java classpath javaagents maven

10
推荐指数
2
解决办法
1万
查看次数

使用Java 1.8/1.7设置IntelliJ IDEA并解决"java:在类路径中找不到系统Java编译器"

让长话短说.这是发生了什么:

  1. 已下载并安装IntelliJ 12 CE
  2. 最新的Java 1.7/1.8下载并安装
  3. JDK设置为制作和运行项目

我遇到了以下奇怪的错误:

Error: java: System Java Compiler was not found in classpath
Run Code Online (Sandbox Code Playgroud)

尽管我已经完全安装了Java 1.7/1.8并且通过终端使用它没有任何问题.

java macos classpath intellij-idea

10
推荐指数
1
解决办法
9406
查看次数

如何将目录添加到eclipse类路径?

我正在尝试运行另一个人创建的已经存在的eclipse项目.
在将其导入eclipse并尝试运行As-> Java Application之后,它失败了,因为它无法在bin/resources中找到.properties文件

我打印出eclipse正在使用的类路径

logger.info(System.getProperty("java.class.path"));
Run Code Online (Sandbox Code Playgroud)

当然,它包括bin,以及所有lib/*.jars,但不包括bin/resources.将.properties文件复制到bin中会使程序正常工作,但我想了解如何将目录添加到eclipse类路径中.

我尝试了几件事,但都没有

export CLASSPATH=$CLASSPATH:/home/me/programdir/bin/resources
Run Code Online (Sandbox Code Playgroud)

这没用.我理解这不是解决这个问题的理想方法,但我认为它会解决问题(我有更多的窗口而不是linux背景所以也许我错过了linux中系统变量的一些细微差别)

接下来,我尝试在Eclipse中的Run-> Configurations对话框中修改VM参数

-classpath "/home/me/programdir/bin/resources"
Run Code Online (Sandbox Code Playgroud)

这里也没有运气,这让我很困惑,因为我确信它会起作用,对于需要在类路径中添加一个额外文件夹的特定程序来说,这似乎是一个合理的解决方案.

接下来我尝试直接修改build.xml.我找到了定义类路径的部分,并为bin/resources添加了我自己的行,如下所示:

<path id="classpath">
    <fileset dir="./bin/resources" includes="**/*.properties"/>
    <fileset dir="./lib" includes="**/*.jar" /> 
</path>
Run Code Online (Sandbox Code Playgroud)

这也是不成功的.这让我更加困惑,所以我注释掉了整个路径元素,并且记录器打印出的类路径没有改变,所以很明显,无论使用什么类路径eclipse,它肯定不是这个.在我看来这是最好的解决方案,如果它有效:build.xml文件可以使用正确的添加进行检查,以防止将来的用户遇到问题.

接下来我尝试了IDE方法.运行 - >配置 - >类路径 - >用户条目 - >高级,只需添加bin/resources文件夹.这完美,程序找到属性文件,一切都很好.但是,我不满意我以前的努力失败了,没有我真正理解为什么.似乎每个人都应该工作.

另外,我想确保以这样的方式修复此问题,即我检入的代码捕获它,以便后续用户不必执行相同的步骤.因此我的解决方案并不十分令人满意,因为我不确定实际的代码片段是如何更改的,因此无法验证是否已签入"修复".

你如何找到eclipse用于其类路径的实际定义?我曾以为这将是build.xml类路径定义,但似乎根本不是这样.

eclipse classpath

10
推荐指数
2
解决办法
4万
查看次数

在EC2上设置spark类路径:spark.driver.extraClassPath和spark.executor.extraClassPath

通过为maven依赖项提供spark-classPath来减小应用程序jar的大小:

我的集群有3个ec2实例,其中hadoop和spark正在运行.如果我构建具有maven依赖关系的jar,它会变得太大(大约100 MB)我想避免这个,因为Jar正在所有节点上复制,每次我跑这份工作.

为了避免这种情况,我将maven包构建为"maven包".对于依赖项解析,我已经在每个节点上下载了所有maven依赖项,然后仅在jar路径下方提供:

我已经在"spark-defaults.conf " 中的每个节点上添加了类路径

spark.driver.extraClassPath        /home/spark/.m2/repository/com/google/code/gson/gson/2.3.1/gson-2.3.1.jar:/home/spark/.m2/repository/com/datastax/cassandra/cassandra-driver-core/2.1.5/cassandra-driver-core-2.1.5.jar:/home/spark/.m2/repository/com/google/guava/guava/16.0.1/guava-16.0.1.jar:/home/spark/.m2/repository/com/google/collections/google-collections/1.0/google-collections-1.0.jar:/home/spark/.m2/repository/com/datastax/spark/spark-cassandra-connector-java_2.10/1.2.0-rc1/spark-cassandra-connector-java_2.10-1.2.0-rc1.jar:/home/spark/.m2/repository/com/datastax/spark/spark-cassandra-connector_2.10/1.2.0-rc1/spark-cassandra-connector_2.10-1.2.0-rc1.jar:/home/spark/.m2/repository/org/apache/cassandra/cassandra-thrift/2.1.3/cassandra-thrift-2.1.3.jar:/home/spark/.m2/repository/org/joda/joda-convert/1.2/joda-convert-1.2.jar
Run Code Online (Sandbox Code Playgroud)

它在单个节点上本地工作.我仍然得到这个错误.任何帮助将不胜感激.

hadoop classpath maven-3 apache-spark

10
推荐指数
1
解决办法
1万
查看次数

标签 统计

classpath ×10

eclipse ×4

java ×4

maven ×2

android ×1

ant ×1

apache-spark ×1

egit ×1

hadoop ×1

intellij-idea ×1

ivy ×1

javaagents ×1

linux ×1

macos ×1

maven-3 ×1

sbt ×1

scala ×1

spring ×1

tomcat ×1

ubuntu ×1

war ×1