Tag: classpath

Java类存在于类路径中,但启动失败,错误:无法找到或加载主类

我有一个包含以下两个类的jar文件foobar.jar : public class Foo { public static void main(String[] args) { System.out.println(“Foo”); } } 另一个类看起来像这样: import javax.batch.api.chunk.ItemProcessor; public class Bar implements ItemProcessor { public static void main(String[] args) { System.out.println(“Bar”); } @Override public Object processItem(Object item) throws Exception { return item; } } 如果我使用以下命令执行程序,程序将按预期运行并打印Foo : $ java -cp foobar.jar Foo Foo $ 但是如果我尝试使用类Bar的main方法启动程序,JVM会输出启动错误并退出: $ […]

在eclipse luna中使用JGit时获取NoClassDefFoundError

我最近下载了eclipse luna并通过Eclipse安装了EGit插件。 我可以在eclipse / plugins文件夹中看到下载jar文件。 然后我将JGit jar文件添加到我的构建路径中,我可以在Referenced Libraries文件夹中看到类文件。 但是,当我运行该项目时,我收到以下错误 Exception in thread “main” java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory at org.eclipse.jgit.util.FS.(FS.java:112) at org.eclipse.jgit.lib.BaseRepositoryBuilder.setupWorkTree(BaseRepositoryBuilder.java:620) at org.eclipse.jgit.lib.BaseRepositoryBuilder.setup(BaseRepositoryBuilder.java:556) at org.eclipse.jgit.storage.file.FileRepositoryBuilder.build(FileRepositoryBuilder.java:92) at org.eclipse.jgit.storage.file.FileRepositoryBuilder.create(FileRepositoryBuilder.java:110) at upload_gen.Launcher.main(Launcher.java:16) Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) … 6 more […]

Java连接到远程MySQL数据库

嘿家伙我试图连接到我的远程mysql数据库,我的代码给了我这个错误: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at Login.login(Login.java:116) at Login.actionPerformed(Login.java:97) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)Logging in with credintials (wqdq, dqww) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at […]

GWT web-app与动态加载类的系统类路径

在我的GWT Web应用程序中,我将所有jar文件保存在项目之外,并使用类路径变量引用它们。 这允许我链接到其他项目/团队的jar,而不必将jar的副本放在我的web app lib目录中。 托管模式请在此系统类路径中查找类,然后将它们添加到web-app类路径中,警告我它正在这样做。 当我部署我的构建系统时,只需要在我的Web应用程序中运送我需要的jar子,这不是问题。 我遇到的问题是一些代码使用动态查找,在类路径中搜索实现。 如果尚未将jar添加到Web应用程序类路径中,则由于尚未从jar中加载任何类,因此它不包含在搜索中。 我遇到的特殊问题是持久性 – 它通过搜索META-INF / services文件来查找EntityManagerFactory实现。 我对罗马及其模块扩展也有类似的问题。 我有一个解决方法,在开发/托管模式中,我只是引用一个我知道在我想要的jar中的类,这会导致它被添加到我的web应用程序类路径中。 我通过电话来做这件事 private void devModeClassPathHack() { Class gwtDevModeHack1 = EntityManagerImpl.class; } 从我的开发模式Guice模块。 我的问题很简单 – 这样做有“更好”的方法吗?

带有来自Jar的多个XML文件的Spring ApplicationContext

我需要使用当前Maven构建中的“main”applicationContext -a.xml创建一个ApplicationContext。 另一个来自另一个maven构建的连接类,并在Maven依赖项包含的jar中预设。 这个想法: ApplicationContext context = new ClassPathXmlApplicationContext( new String[] { “classpath*:applicationContext-*.xml”}); 这应该从Classpath加载applicationContext-a.xml,因为它在同一个Project中。 这很有效。 然后应该从dependency-jar加载applicationContext-b.xml。 这不起作用。 注意 “classpath*:applicationContext-*.xml” 只匹配直接类路径中的XML,jar中没有任何内容。 我发现了什么: ApplicationContext context = new ClassPathXmlApplicationContext( new String[] { “classpath*:applicationContext-*.xml”, “classpath*:applicationContext-b.xml”}); 这是有效的,但前提是我可以在jar:applicationContext-b.xml中明确告诉xml的文件名 我还需要它来进行集成测试: @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {“**/applicationContext*.xml”}) public class TestClass { … } 最好的想法可能是自定义装载机? 必须有一种方法来使这个模式工作…… 前段时间有一个解决方案 ,反之亦然:它只从jar获取applicationContext.xml。 如果类路径中有另一个,它只匹配此文件。

Java Manifest.mf类路径问题

我一直在尝试运行一个jar文件 – 让我们称之为test.jar – 它在Unix系统上使用Sybase jconn3.jar。 我创建了一个MANIFEST.MF文件,其中包含以下内容: Class-Path: $SYBASE/jConnect-6_0/classes/jconn3.jar commons-net-1.3.0.jar 这给出了ClassNotFoundError。 $ SYBASE是指向/ opt / sybase13的系统变量; 我也尝试了以下内容: Class-Path: /opt/sybase13/jConnect-6_0/classes/jconn3.jar commons-net-1.3.0.jar 和 Class-Path: opt/sybase13/jConnect-6_0/classes/jconn3.jar commons-net-1.3.0.jar 但是,如果我将jconn3.jar文件从$ SYBASE / jConnect-6_0 / classes复制到与test.jar相同的目录,并将我的MANIFEST.MF更新为如下所示: Class-Path: jconn3.jar commons-net-1.3.0.jar 应用程序按预期运行。 现在,我已经能够通过在本地复制它来validationjconn3.jar文件的工作原理; 我的MANIFEST.MF文件包含我的Main-Class的路径,所以这里没有问题。 您认为这可能是什么问题? 我一直在看这个东西太久了。 谢谢!

带有已部署的动态Web项目的WebSphere ClassNotFoundException

问题 我目前正在使用WebSphere 7.0应用程序服务器上部署的EAR(使用OpenFaces Web项目)遇到ClassNotFoundException。 EAR部署没有任何问题,但是当我从Web项目(包含在EAR中)访问页面时,我得到了ClassNotFoundException(下面)。 我已导出EAR以确保一切都在那里并且包含WAR文件。 当我查看WAR文件时,未找到的类包含在WEB-INF / classes文件夹中。 例外是指Web项目中的类,如果有帮助则不在JAR中。 我猜我在项目配置中遗漏了一些东西。 任何和所有的反馈非常感谢! 错误 [4/3/13 15:42:49:462 EDT] 0000001b Digester E org.apache.commons.digester.Digester startElement Begin event threw exception java.lang.ClassNotFoundException: org.openfaces.demo.services.MenuItem at java.net.URLClassLoader.findClass(URLClassLoader.java:434) at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:191) at java.lang.ClassLoader.loadClass(ClassLoader.java:660) at com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:111) at java.lang.ClassLoader.loadClass(ClassLoader.java:626) at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:62) at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:58) at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:510) at java.lang.ClassLoader.loadClass(ClassLoader.java:626) at org.apache.commons.digester.ObjectCreateRule.begin(ObjectCreateRule.java:205) at org.apache.commons.digester.Rule.begin(Rule.java:175) at org.apache.commons.digester.Digester.startElement(Digester.java:1453) at oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1296) at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:340) […]

设置类路径以便在mysql和jdbc之间进行连接

我使用的程序:eclipse和mysql。 我在mysql中有一个数据库,我想在eclipse和mysql之间建立连接。 我在Eclipse中创建的项目中有一些文件夹。 我有主文件夹:testest ..我告诉你我在相关文件夹中的内容: testest ..src ….testest ……testestservlet.java ..app engine sdk ..JRE system library ..referenced library ..war ..lib ….mysql-connector-java-5.1.22 我更新了我的testestservlet.java: package testest; import java.io.IOException; import javax.servlet.http.*; import java.sql.*; @SuppressWarnings(“serial”) public class TestestServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { resp.setContentType(“text/plain”); resp.getWriter().println(“Hey, world”); resp.getWriter().println(“MySQL Connect Example.”); Connection conn = null; […]

Spring:PropertyPlaceholderConfigurer找不到属性文件

我使用PropertyPlaceholderConfigurer对Spring有一个奇怪的问题。 我的一个豆子设计如下: classpath:jdbc.properties 问题是spring永远不会找到jdbc.properties( FileNotFoundException )。 该文件位于bundle classpath中的名为“resources”的文件夹中(我在OSGi项目中工作)。 我几乎尝试了所有组合(“jdbc.properties”,“/ jdbc.properties”,“classpath:jdbc.properties”,“classpath:/jdbc.properties”,“/ resources / jdbc.properties”等等… )但它永远不会奏效。 有关信息,如果在某些时候,我做的事情如下: URL u = someClassLoader.getResource(“jdbc.properties”); 它确实工作没有任何问题,并找到该文件。 实际上我完全无法理解spring的错误是什么。 如果您有任何想法可以帮助我,请提前感谢。 我在spring不是很有经验,所以我可能在某处犯了一个错误。 [编辑] 实际上,这是类加载器的问题:如果我这样做: new ClassPathResource(“jdbc.properties”); 它不起作用。 但是: new ClassPathResource(“jdbc.properties”,someClassIntheBundle.class.getClassLoader()); 工作得很好。 我相信Spring使用我的bundle所使用的自己的bundle的ClassLoader。 你知道解决这个棘手问题的方法吗? 谢谢,

又一个Ant + JUnit类路径问题

我正在使用Eclipse开发Eclipse SWT应用程序。 还有一些JUnit 4测试,测试一些DAO。 但是当我尝试通过ant构建运行测试时,所有测试都失败了,因为找不到测试类。 谷歌提出了大约一百万人都有同样的问题,但他们的解决方案似乎都不适合我 – .-。 这些是我的build.xml文件的内容: 测试类与应用程序类一起位于build-directory中,尽管它们根据其包在某些子文件夹中。 也许这也很重要:首先,Ant抱怨JUnit不在它的类路径中,但是因为我把它放在那里(使用eclipse配置编辑器)它抱怨JUnit在它的类路径中两次。 WARNING: multiple versions of ant detected in path for junit [junit] jar:file:C:/Users/as df/Documents/eclipse/plugins/org.apache.ant_1.7.1.v20090120-1145/lib/ant.jar!/org/apache/tools/ant/Project.class [junit] and jar:file:/C:/Users/as%20df/Documents/eclipse/plugins/org.apache.ant_1.7.1.v20090120-1145/lib/ant.jar!/org/apache/tools/ant/Project.class 我已经尝试指定每个子目录,每个类文件,我已经尝试过文件集和文件列表,似乎没什么用。 谢谢你的帮助,我现在已经坐了几个小时了…