所有
我在里面创建了一个包含以下MANIFEST.MF的jar文件:
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.3
Created-By: 1.6.0_25-b06 (Sun Microsystems Inc.)
Main-Class: my.Main
Class-Path: . lib/spring-core-3.2.0.M2.jar lib/spring-beans-3.2.0.M2.jar
Run Code Online (Sandbox Code Playgroud)
在它的根目录中有一个名为my.config的文件,它在我的spring-context.xml中引用,如下所示:
<bean id="..." class="...">
<property name="resource" value="classpath:my.config" />
</bean>
Run Code Online (Sandbox Code Playgroud)
如果我运行jar,除了加载特定文件外,一切看起来都很好:
Caused by: java.io.FileNotFoundException: class path resource [my.config] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/D:/work/my.jar!/my.config
at org.springframework.util.ResourceUtils.getFile(ResourceUtils.java:205)
at org.springframework.core.io.AbstractFileResolvingResource.getFile(AbstractFileResolvingResource.java:52)
at eu.stepman.server.configuration.BeanConfigurationFactoryBean.getObject(BeanConfigurationFactoryBean.java:32)
at eu.stepman.server.configuration.BeanConfigurationFactoryBean.getObject(BeanConfigurationFactoryBean.java:1)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:142)
... 22 more
Run Code Online (Sandbox Code Playgroud)
有小费吗?
我对这两个术语感到困惑.
另外我应该怎么做才能在Spring MVC项目的src文件夹下创建一个文件?当我使用File对象创建时,它在C:\ SpringSourceTool中创建文件......我想这是ClassPath对吗?
如何获取applicationcontext
应用程序的文件夹或根目录?
Java中的编译时间和运行时依赖性有什么区别?它与类路径有关,但它们有何不同?
如何使用ClassLoader.getResources()
从类路径中查找recursivly资源?
例如
找到META-INF
"目录" 中的所有资源:想象一下
getClass().getClassLoader().getResources("META-INF")
不幸的是,这只会检索URL
到这个"目录".
所有资源命名bla.xml
(recursivly)
getClass().getClassLoader().getResources("bla.xml")
但是这会返回一个空的Enumeration
.
并作为一个奖金问题:如何ClassLoader.getResources()
区别ClassLoader.getResource()
?
我创建了一个包含所有编译内容的jar文件.另外,我的ant构建脚本将所需的lib复制到子文件夹"libs"中.结构如下所示:
MyProgram.jar
libs/
Run Code Online (Sandbox Code Playgroud)
因此,当我尝试运行我的程序时,我收到以下错误:
java -cp ".:/home/user/java/MyProgram/jar/libs" -jar MyProgram.jar
java.lang.ClassNotFoundException: org.postgresql.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at database.PostgresQL.getConnection(PostgresQL.java:38)
at recommender.dao.Creative2IdxDAO.createCreatives2Idx(Creative2IdxDAO.java:19)
at main.Main.calculateCorrelationMatrix(Main.java:51)
at main.Main.main(Main.java:28)
java.lang.NullPointerException
at recommender.dao.Creative2IdxDAO.createCreatives2Idx(Creative2IdxDAO.java:25)
at main.Main.calculateCorrelationMatrix(Main.java:51)
at main.Main.main(Main.java:28)
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
我正在尝试获得一个目标来构建其元素中有相当长的列表<pathelement location="${xxx}"/>
和<path refid="foo.class.path"/>
元素<path id="bar.class.path">
(在build.xml文件中).我一直得到"包com.somecompany.somepackage不存在"错误,我很难追逐这些包并确保我已经从我们的存储库中同步它们.
我是这个团队的新手,所以我对构建不熟悉,但如果可能的话,我更愿意自己解决这个问题(所以我不打扰其他非常繁忙的团队成员).我对Ant的经验非常有限.
我认为如果我可以让Ant打印出我正在尝试构建的目标的类路径,那将节省我很多时间.
我收到错误:"只能导入一个类型.XYZ会解析为一个包."
有人在这里解释了原因,但我不确定我应该做些什么来解决这个问题.仅供参考:我正在使用Eclipse.我添加了下面导入的代码.java.util.*import工作正常.
<%@ page import="java.util.*"%>
<%@ page import="org.eresearch.knowledgeportal.model.Category"%>
<%@ page import="org.eresearch.knowledgeportal.dao.CategoryDao"%>
<%
CategoryDao catDao = new CategoryDao();
ArrayList<Category> catList = catDao.selectCategory();
//
%>
Run Code Online (Sandbox Code Playgroud)
编辑:实际错误如下:
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 7 in the generated java file
Only a type can be imported. org.eresearch.knowledgeportal.model.Category resolves to a package
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Java从命令行(Windows)调用类(main方法).
该类导入其他类(其他jar).
我总是从我的主程序导入的类中获得"class not found exception".
这是我试过的:
添加CLASSPATH环境.var与引用的lib所在的路径(不工作)
java -jar myjar.jar
从命令行调用" " 时我尝试了所有这些不同的参数:" -classpath lib/
"," -classpath ./lib/
"," -classpath lib
"," -cp lib/*
"," -cp lib/\*
"," -classpath lib/referenced-class.jar
"," -classpath ./lib/referenced-class.jar
"(lib是引用的jar所在的位置)
我尝试在我的主要类所在的jar中包装所有引用的jar ...
尽管如此,我还尝试使用以下内容在Manifest文件中指定类:
Class-path referenced-jar.jar
我也尝试过Class-path lib/referenced-jar.jar
我有一个在我的类路径中的文件,例如com/path/to/file.txt
.我需要加载或引用此文件作为java.io.File
对象.这是因为我需要使用java.io.RandomAccessFile
(文件很大,我需要寻找某个字节偏移量)来访问该文件.这可能吗?构造函数RandomAccessFile
需要File
实例或String(路径).
如果有另一个解决方案寻求某个字节偏移并读取该行,我也对此持开放态度.
classpath ×10
java ×9
jar ×3
ant ×1
buildpath ×1
classloader ×1
command-line ×1
compile-time ×1
getresource ×1
jsp ×1
resources ×1
runtime ×1
spring ×1
target ×1
tomcat ×1