Java jar文件在运行时必须在哪里?我正在使用netbeans

Java jar文件在运行时必须在哪里?我正在使用netbeans,java,netbeans,jar,Java,Netbeans,Jar,我正在创建一个使用我下载的jar文件的应用程序,我通过转到“项目属性”然后转到“库”并在“编译”和“运行”下添加jar,将jar添加到项目中。当我到达使用这个特定库中函数的程序部分时,我得到一个noclassdeffound错误。如何在运行时找到放置此jar文件的位置?这是堆栈跟踪 [#|2015-01-22T15:39:50.446-0500|WARNING|glassfish3.1.2|javax.enterprise.system.container.web.com.sun.enterpr

我正在创建一个使用我下载的jar文件的应用程序,我通过转到“项目属性”然后转到“库”并在“编译”和“运行”下添加jar,将jar添加到项目中。当我到达使用这个特定库中函数的程序部分时,我得到一个noclassdeffound错误。如何在运行时找到放置此jar文件的位置?这是堆栈跟踪

[#|2015-01-22T15:39:50.446-0500|WARNING|glassfish3.1.2|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=109;_ThreadName=Thread-2;|StandardWrapperValve[generateScripts]: PWC1406: Servlet.service() for servlet generateScripts threw exception
java.lang.NoClassDefFoundError: org/apache/commons/collections4/BidiMap
    at tsschecks.generateScripts.processRequest(generateScripts.java:94)
    at tsschecks.generateScripts.doPost(generateScripts.java:179)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:770)
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
    at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
    at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
    at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections4.BidiMap
    at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1509)
    at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1359)
    ... 28 more

在项目属性中将库添加到项目中

如果尚未创建库,则可能需要创建库


如果您需要进一步的帮助,请参阅此部分

一些jar文件需要称为依赖项的其他jar文件。使用Maven项目可以解决这个问题,但是如果您只是创建一个java项目并添加自己的jar文件,那么您需要逐个包含所有这些依赖项

您可以搜索通过google添加的主jar文件的依赖项。但是,错误消息会报告缺少该类的一些有用信息。复制并搜索引发错误的错误消息或方法名称

无论如何,如果您想知道库的位置,首先从窗口菜单打开project explorer视图。打开项目并转到库文件夹。右键单击它并选择属性。将打开“项目属性”窗口。选择“库”,然后选择“编译”选项卡。这是您包含的类所在的位置。不过,在这里添加更多类

通常,jar文件位于项目jar中。要找到答案,请点击F11或运行菜单>buid project。成功构建后,转到项目所在的位置。再次转到“项目属性”,这次从左侧列表中选择“源”。它将为您指明道路

转到那个路径,转到dist文件夹,那里将有project.jar、readme.txt和一个lib文件夹,所有外部jar都位于其中


要运行您的项目(主要用作编译字节码),请双击project.jar文件。

jar必须位于您的文件系统中的某个位置,即类路径中。ClassNotFoundException和NoClassDefFound error之间存在差异。请粘贴您获得的整个堆栈跟踪,并查看jar/class在运行时是否需要任何其他依赖项。您是否在运行时下载并添加了common-collections4.jar?您说过吗?我下载了它,并在“项目属性->库->编译”和“运行”选项卡下添加了它。还有其他地方我需要添加它吗?我不知道这是否重要,但这是一个运行在glassfish服务器上的web应用程序。这更像是玻璃鱼的问题吗?