假设有一个名为callme.jar的jar文件
它位于几个目录中,
如何分析在运行时使用哪一个?
我确信这要么是之前被要求的,要么是非常简单的.但无论出于何种原因,我似乎无法使其发挥作用.我想使用ant将${build.classpath}(包含冒号分隔的jar列表)复制到${output.dir}/myapp/WEB-INF/lib.
我现在有这个,它似乎不起作用:
<copy toDir="${output.dir}/myapp/WEB-INF/lib">
<fileset file="${build.classpath}" />
</copy>
Run Code Online (Sandbox Code Playgroud)
它将整个类路径视为一个文件.我如何让它工作?
任何经常使用Java的人都知道classpath中的多个jar可以给我们带来的麻烦.我正在寻找一个可以帮助我的工具 -
也不用说它应该很快.我评估的大多数工具都非常慢,并没有达到标准.
任何用于上述目的的工具都非常感谢.
目前我使用WinRar实现搜索(BTW非常快)来搜索特定位置的jar内的类文件.但是没有办法利用它在Classpath中搜索.
我正在开发用于out maven插件的m2e连接器,它实际上生成了一些来源.我需要将生成的源(文件夹)添加到工作区作为源文件夹.
我使用JavaCore编辑.classpath文件:
IJavaProject javaProject = JavaCore.create(proj);
IClasspathEntry[] entries = javaProject.getRawClasspath();
IClasspathEntry[] newEntries = new IClasspathEntry[entries.length + 1];
System.arraycopy(entries, 0, newEntries, 0, entries.length);
Path myPath = new Path("target/generated-sources");
IClasspathEntry myEntry = JavaCore.newSourceEntry(myPath);
newEntries[entries.length] = JavaCore.newSourceEntry(myEntry.getPath());
javaProject.setRawClasspath(newEntries, null);
Run Code Online (Sandbox Code Playgroud)
但是这段代码不起作用,它说: IClasspathEntry的路径必须是绝对的
如果我尝试使用绝对路径,它已写入.classpath但在eclipse中它没有显示为源文件夹.
有人有什么建议吗?这应该很容易,但我无法弄清楚如何解决它.
我已经看过很多教程和应用程序将他们的jar放在构建路径中,而其他人将它放在他们的web-inf/lib文件夹中,是否有任何显着差异?两者的优点和缺点是什么?我将一个jar放在libs文件夹中并将jar放在构建路径中的指示器是什么?
我在Eclipse(windows)中使用java,我正在尝试使用:
myClass.getResource("/image.jpg"),
Run Code Online (Sandbox Code Playgroud)
而image.jpg存在于root loacation"myProject /"中.它返回null.
我检查了很多其他线程,但没有一个解决了我的问题.
所以我试着评估一下:
this.getClass().getResource("/").getPath();
Run Code Online (Sandbox Code Playgroud)
它返回"myProject/build/classes".
所以我检查了这个目录的项目配置,并找到了完全相同的目录
Java构建路径 - >源 - >默认输出文件夹
我的问题是:
为什么我的资源的默认目录是输出文件夹?
如上所述,我想从另一个文件夹中获取资源,但尝试调用"/../"不起作用...如何加载其他未嵌套在我的类dir中的资源?(我可以改变我的输出目录,但我认为它会非常难看......)
我想在我的Java项目的资源文件夹中读取该文件.我使用了以下代码
MyClass.class.getResource("/myFile.xsd").getPath();
Run Code Online (Sandbox Code Playgroud)
我想检查文件的路径.但它给出了以下路径
file:/home/malintha/.m2/repository/org/wso2/carbon/automation/org.wso2.carbon.automation.engine/4.2.0-SNAPSHOT/org.wso2.carbon.automation.engine-4.2.0-SNAPSHOT.jar!/myFile.xsd
Run Code Online (Sandbox Code Playgroud)
我在maven存储库依赖项中获取文件路径,但它没有获取文件.我怎样才能做到这一点?
在将我的应用程序转换为Web应用程序之前 Log4j将日志记录在我在log4j2.xml中定义的正确日志文件(info.log和debug.log)中.
但是当我将我的应用程序更改为web.app时,所有日志现在都记录到servlet容器(tomcat 7)中的catalina.out文件中.部署应用程序后,log4j2会创建这些日志文件,但它们仍为空,所有日志都会转到catalina.out文件.
你能说出我做错了吗?
在web.xml中,我添加了必要的配置.
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>project-service</display-name>
<!-- Support for Spring -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext.xml</param-value>
</context-param>
<context-param>
<param-name>log4jConfiguration</param-name>
<param-value>log4j2.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<listener>
<listener-class>
org.springframework.web.util.Log4jConfigListener
</listener-class>
</listener>
</web-app>
Run Code Online (Sandbox Code Playgroud)
log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="trace" strict="true" name="XMLConfigTest"
packages="">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<RollingRandomAccessFile name="RollingRandomAccessFileDebug" fileName="/local/deploy/logs/debug.log"
filePattern="logs/$${date:yyyy-MM}/project-%d{MM-dd-yyyy}-%i.log.gz"
immediateFlush="false"
append="false">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] …Run Code Online (Sandbox Code Playgroud) 当我尝试设置classpath时,我遇到了错误.我正在使用CentyOS.我试图在命令提示符中编译一个java文件,因为我正在设置类路径.在Intellij中执行相同的java程序时,运行正常.在从命令提示符执行相同操作时,它显示缺少jar的错误,因此我将类路径添加到看到错误的lib.
[root@a admin]# export CLASSPATH=/home/admin/TagAPI/lib/org.json-20120521.jar ;/home/admin/TagAPI/lib/testng-6.8.21.jar
invalid file (bad magic number): Exec format error
Run Code Online (Sandbox Code Playgroud)
任何建议都会有所帮助.我是java和linux的新手,谢谢!
据说java 9模块将解决classpath地狱.但是,我正在考虑以下情况:模块A使用模块B和C.两个模块都将导出具有相同名称和包的类.如何在这里解决类加载问题?
classpath ×10
java ×8
ant ×1
build ×1
classloader ×1
copy ×1
eclipse ×1
eclipse-jdt ×1
getresource ×1
jar ×1
java-9 ×1
java-ee ×1
java-module ×1
linux ×1
log4j ×1
maven ×1
resources ×1
tomcat7 ×1
web.xml ×1