标签: classpath

如何以编程方式查找主执行类的完整路径

我正在尝试以编程方式本地化一个属性文件,而不必将命令行上的完整路径名传递给我的程序.我想如果我能找到主类的路径,我可以将我的属性文件粘贴在同一目录或子目录中.

如果这不起作用,我可以通过其他方式找到属性文件的路径,而无需在命令行上传递它.

谢谢

java classpath classloader

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

打开文件; 首先尝试文件系统,然后尝试JAR

我正在尝试让我的应用程序透明地加载资源(二进制文件):

如果该文件存在于当前目录下,请将其打开.
如果没有,请尝试查看当前的JAR文件(如果适用).
如果没有,请尝试查看其他JAR文件.(这是可选的,我不介意明确指定哪些J​​AR文件.)

到目前为止,我知道File哪个打开一个本地文件,ClassLoader哪个有getResource*JAR内容.

是否有一个结合了两者的课程?如果没有,我该如何自己写呢?我应该写一个ClassLoader也检查本地文件系统?用File?(我对Java非常熟悉,甚至不知道返回什么样的好类型.InputStream?)

谢谢

PS"文件"我的意思是"路径",例如"data/texture1.png".

java jar classpath classloader

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

为Clojure项目设置CLASSPATH

我有一个简单的项目结构:

Base Dir
   src ;; Pile of Clojure files
   lib ;; Jar files
Run Code Online (Sandbox Code Playgroud)

要导出类路径:$ export CLASSPATH = $ CLASSPATH:src:lib/*

试图运行一个Clojure文件:java -cp $ CLASSPATH -jar lib/clojure.jar src/wizard-game.clj
但是我得到了:

线程"main"中的异常java.io.FileNotFoundException:找不到类路径上的
clojure/contrib/trace_init.class 或clojure/contrib/trace.clj: 引起:java.io.FileNotFoundException:找不到clojure/contrib / classpath上的trace _init.class或clojure/contrib/trace.clj:

好吧,这是一个类路径问题,但是我做错了什么/哪里?

有没有更好的方法来尝试运行它?

更新:
我试过这个命令:

java -classpath $ CLASSPATH clojure.main src/wizard-game.clj

现在运行正常.

jvm clojure jvm-languages classpath

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

为什么tomcat找不到我的log4j.properties文件?

我的网络应用似乎工作正常.我决定添加一些日志记录.当我部署war文件时,应用程序失败并出现异常,因为tomcat不知道log4j.jar.

我将jar添加到WEB-INF/lib文件夹并重新部署.例外消失了.这让我知道WEB-INF/lib在类路径上.

但是,现在logs/catalina.out有以下典型错误消息:

log4j:WARN No appenders could be found for logger (com.this.that.Validate).
log4j:WARN Please initialize the log4j system properly.
Run Code Online (Sandbox Code Playgroud)

因此,我将log4j.properties文件复制到WEB-INF/lib文件夹中.

log4j警告仍会显示,据我所知,没有任何记录.

我很欣赏有关解决这个问题的一些指导.我在追我的尾巴.


更新

我相信我的第一个问题已经解决 - 我不再收到警告信息.我认为发生的事情是我在爆炸文件层次结构中有一个带有pwd的unix shell,这阻止了Tomcat成功删除旧项目.


log4j的

我的log4j.properties文件是

log4j.rootLogger=DEBUG, FILE

log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=prog1.log

log4j.appender.FILE.MaxFileSize=100KB
# Keep one backup file
log4j.appender.FILE.MaxBackupIndex=1

log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%p %t %c - %m%n
Run Code Online (Sandbox Code Playgroud)

解析度

我将'log4j.appender.FILE.File = prog1.log'行更改为具有tomcat日志记录文件夹的显式路径.

谢谢大家,您的想法帮助我解决了这个问题,并且智能化了3.18%.

java servlets classpath

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

无法打开META-INF/persistence.xml,因为它不存在

我正在创建一个基本的spring-maven项目,它应该作为java应用程序运行(在进程中,而不是在Web服务器上).

我的应用程序上下文位于我的类路径中的resources文件夹下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:ox="http://www.springframework.org/schema/oxm"
    xsi:schemaLocation="
   http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
   http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
   http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
   http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
   http://www.springframework.org/schema/oxm http://www.springframework.org/schema/oxm/spring-oxm-3.1xsd">


<!-- Root Context: defines shared resources visible to all other web components -->

<!-- Context -->
<context:component-scan base-package="me.co.nutrition" />

<!-- Properties -->
<context:property-placeholder
    location="classpath:/nutrition.accumulation.properties" />

<!-- DB -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="${jdbc.driverClassName}" />
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
</bean>

<bean id="persistenceUnitManager"
    class="org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager">
    <property name="defaultPersistenceUnitName" value="nutrition-pu"/>
    <property name="persistenceXmlLocation" …
Run Code Online (Sandbox Code Playgroud)

spring classpath persistence.xml applicationcontext

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

Adobe ColdFusion 9中的"JVM和Java设置"CF管理页面在哪里

许多指南都引用了"JVM和Java设置"页面(在CF管理员中)来操作Adobe ColdFusion中的类路径.(我碰巧在ACF9上.)

我在Linux(Ubuntu)上运行多服务器ACF9,但我无法在任何地方找到该页面.

CF管理员http://i45.tinypic.com/1zfrm0z.png

它在哪里,和/或我如何操纵CF类路径?(特别是,我想为一个特定的实例修改它.)

java coldfusion classpath

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

为什么"我没有这样的文件或目录"出现在我的环境变量中?

我使用标准方式为我的系统设置了环境变量(即在〜/ .bashrc中设置它们).一切都编译并正常工作,但当我尝试查看$ CLASSPATH变量时,变量字符串末尾会显示"No such file or directory"消息,如下所示 -

user@user-pc:/media/Data$ $CLASSPATH [press enter]
bash: .:/opt/jdk1.7.0_03/lib/tools.jar:/opt/jdk1.7.0_03/lib/dt.jar:/usr/local/lib/JMF-2.1.1e/lib/jmf.jar:/usr/local/lib/jfreechart-1.0.13/lib/jfreechart-1.0.13.jar:/usr/local/lib/jfreechart-1.0.13/lib/jcommon-1.0.16.jar: No such file or directory
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?所有的jar位置都是正确的,没有遗漏/拼写错误,我做了双重检查.

编辑注意:我这样设置它们 -

JAVA_HOME=/opt/jdk1.7.0_03;export JAVA_HOME
JMFHOME=/usr/local/lib/JMF-2.1.1e;export JMFHOME
JFRC_HOME=/usr/local/lib/jfreechart-1.0.13;export JFRC_HOME
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
:$JMFHOME/lib/jmf.jar:$JFRC_HOME/lib/jfreechart-1.0.13.jar
:$JFRC_HOME/lib/jcommon- 1.0.16.jar;export CLASSPATH
Run Code Online (Sandbox Code Playgroud)

我正在使用Ubuntu 10.04,请忽略上面的所有"新行",它们归功于SO的降价编辑器.

bash classpath environment-variables

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

如何找到jar cointainign给定的类

缺少类"org.apache.xerces.impl.XMLDocumentFragmentScannerImpl"时出错.这是一个新的项目设置,whitout使用maven或其他工具来管理依赖项.我想忘了包含一些jar,如何找到自己的XMLDocumentFragmentScannerImpl?

java classpath method-missing

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

类路径的解决方案在Eclipse中为只读

尝试将我的同事的项目设置到我的工作空间时出现错误。

当我尝试编辑构建路径时,他几乎没有指向他本地的jar,它说.classpath是只读的。

有什么解决方案可以解决这个问题吗?

谢谢汤姆

java eclipse classpath

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

Gradle如何在JavaExec类路径中包含runtimeOnly依赖项?

Gradle如何在JavaExec类路径中包含runtimeOnly依赖项?例如,

子项目foo:

dependencies {
    runtimeOnly files('libs/hello.jar')
}
Run Code Online (Sandbox Code Playgroud)

子项目栏:

dependencies {
    compile project(':foo')
}

task execHello(type: JavaExec, dependsOn: 'compileJava') {      
     classpath = configurations.runtime         
     main 'myPackage.Hello'
}
Run Code Online (Sandbox Code Playgroud)

在libs / hello.jar中定义了主类myPackage.Hello,它是项目foo的runtimeOnly依赖项。

configuration.runtime不包含runtimeOnly依赖hello.jar。如果我在项目foo中将runtimeOnly依赖项更改为api依赖项,它将起作用。

classpath = configurations.runtime + configuration.runtimeOnly
Run Code Online (Sandbox Code Playgroud)

错误:runtimeOnly无法明确解决。如何在JavaExec类路径中添加hello.jar?

runtime classpath gradle javaexec-gradle-plugin

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