标签: jar

Eclipse IDE - 如何将外部.jar文件放入lib文件夹?

Eclipse IDE - 有人可以告诉我如何将外部.jar文件分组到C:\ lib文件夹中吗?我真的很喜欢将它们全部放在lib文件夹中而不占用项目根目录中的垂直空间(参见附件).

我在这里阅读了一些类似的帖子并尝试了它们,但我的项目仍然没有"看到"所需的.jar文件!这非常令人沮丧.

我知道如何添加文件夹但是如何告诉Eclipse我的.jar文件夹在c:\ lib中,所以我的项目会执行?我甚至不确定在我的项目中创建一个lib文件夹是否与我的jar文件恰好位于c:\ lib中有关.

谢谢...

Eclipse IDE Project Explorer http://msgVault.com/0.jpg

eclipse ide directory jar

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

org.springframework.web.context.ContextLoaderListener(抛出java.lang.ClassNotFoundException)

  • 我正在使用JBoss 7.1
  • Eclipse和我有以下Jar文件(commons-dbcp.jar,commons-logging.jar,commons-pool.jar,jstl.jar,log4j-1.2.15.jar,mysql-connector-java-5.1.6-bin的.jar,的spring.jar,弹簧webmvc.jar,standard.jar)

当我尝试调试我的项目时,我收到以下错误

22:12:07,196 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/OnlinemployeeDB]] (MSC service thread 1-2) Error configuring application listener of class org.springframework.web.context.ContextLoaderListener: java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener from [Module "deployment.OnlinemployeeDB.war:main" from Service Module Loader]
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
    at org.jboss.as.web.deployment.WebInjectionContainer.newInstance(WebInjectionContainer.java:72) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
    at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3342) [jbossweb-7.0.13.Final.jar:]
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:3850) [jbossweb-7.0.13.Final.jar:]
    at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [rt.jar:1.7.0_25]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.7.0_25]
    at java.lang.Thread.run(Unknown Source) [rt.jar:1.7.0_25]

22:12:07,216 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/OnlinemployeeDB]] (MSC service thread 1-2) Skipped installing application listeners due to previous error(s) …
Run Code Online (Sandbox Code Playgroud)

java eclipse jboss jar spring-mvc

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

从Maven创建jar文件

当我使用此命令时,我想创建一个没有SNAPSHOT原因的jar文件

mvn -f pom.XML package
Run Code Online (Sandbox Code Playgroud)

创建了两个文件“文件名_SNAPSHOT.jar和文件名_SNAPSHOT_WITH_dependencies.jar”。我想要文件名.jar,我知道我应该在pom.XML中进行编辑,因此我尝试添加此文件

mvn -f pom.XML package
Run Code Online (Sandbox Code Playgroud)

但是它创建了文件名name_SNAPSHOT_source.jar我该如何解决?

我的pom.XML这样的

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <model Version>4.0.0</model Version>
    <group Id>MyProject</group Id>
    <artifact Id>MyProject</artifact Id>
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging>
Run Code Online (Sandbox Code Playgroud)

java jar maven

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

maven - 如果需要,存储外部jar文件的位置

在maven项目中存储jar文件的惯例是什么?我知道我应该使用maven本身下载jar,但这次情况有所不同.我正在做一个课程(coursera.org),我有一些秘密的jar文件,我应该使用它并不公开 - 我不会用maven下载它.我确实想将.jar文件存储在我的私人仓库(bitbucket)中.问题是我应该把文件放在哪里,以便maven项目能够使用这个jar.

java jar maven

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

创建JAR文件并在命令提示符下使用?

好的,我已经按照Java教程创建了JAR文件,甚至创建了与之配套的Manifest.txt。我非常困惑,我到了要在命令提示符下运行JAR的地步,但这并不是指我在主程序中使用的另一个类。

我有两个正在使用的.class文件javagame.classsound.class

它终于加载了主类,但是当它需要引用该sound.class文件时,它说它不存在,NoClassDefFoundError

我在cmd提示中做了'jar cfm myjar.jar Manifest.txt javagame.class sound.class'然后

jar cfe app.jar javagame javagame.class
Run Code Online (Sandbox Code Playgroud)

最后,我确实java -jar app.jar运行了JAR,但遇到了无法找到sound.class文件的错误。

有人请帮我很困惑。

java cmd jar

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

为特定类型的类声明String到Class的映射

我正在尝试围绕其他所有都具有main方法的其他类创建命令行包装器类。

我已经声明了字符串到类的映射,但是现在我想确保所有类都实现一个特定的接口。

这个想法是,您要给类别名或“命令名”作为第一个参数,然后调用该类的主类,并将其余的argv数组传递给它。

最初我有这个:

static final Map<String, Class> CLASSES = new LinkedHashMap<String,Class>() {{
    put( "command1", com.foobar.package_a.ClassOne.class   );
    put( "command2", com.foobar.package_a.ClassTwo.class   );
    put( "command3", com.foobar.package_b.ClassThree.class );
    ...
}};
Run Code Online (Sandbox Code Playgroud)

但是我想让用户在不使用args的情况下运行命令,并列出类及其操作。从以前的工作来看,大多数类确实都有描述。

我决定在一个界面中对此进行形式化:

public interface HasDescription {
    String getDescription();
}
Run Code Online (Sandbox Code Playgroud)

然后:

public class ClassOne implements HasDescription {
    // I'd prefer static, but that's a different concern
    public String getDescription() {
        return "check files for gophers";
    }
    ... rest of class ...
}
Run Code Online (Sandbox Code Playgroud)

但是我不确定如何声明它,我有很多变体。这是一个无效的示例:

static final Map<String, Class<T implements HasDescription>> CLASSES = new …
Run Code Online (Sandbox Code Playgroud)

java generics reflection collections jar

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

Zipfiles的Python问题

免责声明:编码新手

C:\Python27\python.exe C:/Users/Evolution/PycharmProjects/MCMODVERSION/stuff/main.py
<open file 'C:\\Users\\Evolution\\Desktop\\mods\\AT_StalkerCreepers_1.6.4.jar', mode 'r' at 0x026F6A18>
Traceback (most recent call last):
True
<zipfile.ZipFile object at 0x02736EB0>
  File "C:/Users/Evolution/PycharmProjects/MCMODVERSION/stuff/main.py", line 80, in <module>
<open file 'C:\\Users\\Evolution\\Desktop\\mods\\BC_AdditionalPipes2.6.0-BC4.2.1.jar', mode 'r' at 0x026F6AC8>
    o = t.getdirList()
True
  File "C:/Users/Evolution/PycharmProjects/MCMODVERSION/stuff/main.py", line 36, in getdirList
    self.getModinfo(os.path.join(p, o[n]), 'name')
  File "C:/Users/Evolution/PycharmProjects/MCMODVERSION/stuff/main.py", line 46, in getModinfo
    y = zipfile.ZipFile(x)
  File "C:\Python27\lib\zipfile.py", line 766, in __init__
    self._RealGetContents()
  File "C:\Python27\lib\zipfile.py", line 832, in _RealGetContents
    raise BadZipfile("Truncated central directory")
zipfile.BadZipfile: Truncated central directory

Process finished with …
Run Code Online (Sandbox Code Playgroud)

python zip jar

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

加载.Jar文件或类路径中包含的资源(图像)

所以我已经尝试过各种各样的解决getResourceAsStream()方法,在堆栈交换上解决这个问题,大多数人说使用方法,我已经完成了.这是Jar的资源输入方法.

import java.io.InputStream;

    public class ResourceLoader {
        public static InputStream load(String path){
    InputStream input = ResourceLoader.class.getResourceAsStream(path);
    if(input == null){
        input = ResourceLoader.class.getResourceAsStream("/" + path);
    }
    return input;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在我的ImageLoader课堂上使用它.

public class ImageLoader {

public BufferedImage load(String path){
    try {
//          return ImageIO.read(getClass().getResource(path));
        return ImageIO.read(ResourceLoader.load(path));
    } catch (IOException e) {
        e.printStackTrace();
    }
    return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

并使用将图像加载到主程序中

ImageLoader loader = new ImageLoader();
    spriteSheet = loader.load("/spritesheet.png");
Run Code Online (Sandbox Code Playgroud)

现在在日食中游戏运行并加载所有图像完全正常.但我想要做的是将它导出到Jar,我已经使用一些教程完成了,并成功将其导出到包含我使用的图像的资源文件夹.但是,当我尝试运行.jar文件时,此错误会在cmd行中弹出.

Exception in thread "Thread-2" java,lang.IllegalArgumentException: input == null
!
    at …
Run Code Online (Sandbox Code Playgroud)

java jar

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

如何访问Java中的调用程序的资源目录

我有一个程序使用的库.该库在resources文件夹中加载一个特殊目录.

在图书馆我有方法

public class DataRegistry{

    public static File getSpecialDirectory(){
        String resourceName = Thread.currentThread().getContextClassLoader().getResource("data").getFile().replace("%20", " ");
        File file = new File(resourceName);
        return file;
    }

}
Run Code Online (Sandbox Code Playgroud)

在我的程序中我有主要方法

public static void main(String args[]){
    System.out.println(Data.getSpecialDirectory());
}
Run Code Online (Sandbox Code Playgroud)

当我在数据程序中的junit测试中执行getSpecialDirectory()时,将获取资源并且一切正常.

当我在数据程序(导入的jar)之外的main方法中执行getSpecialDirectory()时,我得到了jar数据目录,而不是执行该程序的程序所期望的目录.

我想让父类加载器能解决这个问题......我相信我的理解可能会有一个根本问题.

为清楚起见:

(图书馆)此文件的第15行:https://gist.github.com/AnthonyClink/11275442

(用法)此文件的第31行:https: //gist.github.com/AnthonyClink/11275661

我的poms可能与它有关,所以分享它们可能很重要:

(图书馆) https://github.com/Clinkworks/Neptical/blob/master/pom.xml

(用法) https://github.com/Clinkworks/Neptical-Maven-Plugin/blob/master/pom.xml

java jar classloader

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

如何创建自动执行的JAR文件

我不是在寻找如何让我的JAR可以运行,而是自我执行.我发现这篇文章:

http://en.newinstance.it/2012/04/17/self-executing-jar-files/

我按照列出的步骤,根据需要创建了我的文件.我以为我有它工作(因为它会运行),但我意识到它实际上并没有运行JAR文件(BAT文件中嵌入的文件)的正确版本,而是来自文件系统的文件.

当我从文件系统中删除JAR文件时,Java错误说它无法找到该文件.下面是我为我的小测试项目创建的"make"脚本.您需要替换自己的路径和Java文件.

任何人都可以得到一个有效的例子吗?我最终希望能够使用可以使用的带有嵌入式二进制文件的自包含批处理文件.

@echo off
cd /d D:\current\battle
javac -d classes src\RemoveFiles.java
pushd classes
echo Main-Class: RemoveFiles > MANIFEST.MF
jar -cvmf MANIFEST.MF ..\RemoveFiles.jar RemoveFiles*.class 
popd
echo @java -jar RemoveFiles.jar %%^* > removeStub.bat
echo @exit /b >> removeStub.bat
copy removeStub.bat /b + RemoveFiles.jar /b RemoveFiles.bat /b
Run Code Online (Sandbox Code Playgroud)

感谢您的任何帮助...

java jar binaryfiles batch-file

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