标签: classpath

如何分析Java程序中使用的jar文件?

假设有一个名为callme.jar的jar文件

它位于几个目录中,

如何分析在运行时使用哪一个?

java classpath

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

Ant copy classpath 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 ant copy classpath

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

Java类查找器工具

任何经常使用Java的人都知道classpath中的多个jar可以给我们带来的麻烦.我正在寻找一个可以帮助我的工具 -

  1. 在Classpath中搜索jar中的类文件
  2. 在特定位置的 jar中搜索类文件
  3. 也许要求太多,但如果同一个班级出现在多个罐子中,请告诉我.

也不用说它应该很快.我评估的大多数工具都非常慢,并没有达到标准.

任何用于上述目的的工具都非常感谢.


目前我使用WinRar实现搜索(BTW非常快)来搜索特定位置的jar内的类文件.但是没有办法利用它在Classpath中搜索.

java classpath

7
推荐指数
1
解决办法
3766
查看次数

以编程方式从Eclipse插件添加源文件夹

我正在开发用于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中它没有显示为源文件夹.

有人有什么建议吗?这应该很容易,但我无法弄清楚如何解决它.

eclipse classpath eclipse-jdt

7
推荐指数
1
解决办法
3538
查看次数

Java配置构建路径或WEB-INF/lib文件夹

我已经看过很多教程和应用程序将他们的jar放在构建路径中,而其他人将它放在他们的web-inf/lib文件夹中,是否有任何显着差异?两者的优点和缺点是什么?我将一个jar放在libs文件夹中并将jar放在构建路径中的指示器是什么?

java jar build classpath java-ee

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

为class.getResource()定义根类路径

我在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构建路径 - >源 - >默认输出文件夹

我的问题是:

  1. 为什么我的资源的默认目录是输出文件夹?

  2. 如上所述,我想从另一个文件夹中获取资源,但尝试调用"/../"不起作用...如何加载其他未嵌套在我的类dir中的资源?(我可以改变我的输出目录,但我认为它会非常难看......)

java classpath classloader getresource

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

在Java中的resources文件夹中获取文件

我想在我的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存储库依赖项中获取文件路径,但它没有获取文件.我怎样才能做到这一点?

java resources classpath maven

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

Tomcat 7将所有日志记录到catalina.out中,但不记录到log4j2定义的文件中

在将我的应用程序转换为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)

java web.xml log4j classpath tomcat7

7
推荐指数
1
解决办法
7690
查看次数

无效文件(错误幻数):执行格式错误

当我尝试设置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 linux classpath

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

Java 9模块和类路径地狱:冲突的类名

据说java 9模块将解决classpath地狱.但是,我正在考虑以下情况:模块A使用模块B和C.两个模块都将导出具有相同名称和包的类.如何在这里解决类加载问题?

classpath java-9 java-module

7
推荐指数
1
解决办法
713
查看次数