现在我已经学到了更多,我可以提出一个更直接的问题。
方案:
我在IntelliJ Idea
中有一个Java项目,其最终目标是创建一个能够在Windows或Linux上运行的独立.jar,可以使用java -jar jarname.jar
从命令行运行,也可以只需双击任何正常的,简单的罐子。
我写了一些类,位于我的src/package/name
目录中。但是,我的一个类需要使用外部类,即不在我的源目录中的类,或者不是.jar
中Java的默认JDK
组的一部分。
如何配置IntelliJ
以构建.jar
工件并在其中包含必要的资源,并将所需的所有内容放在适当的位置,以便 my class可以通过普通的import
语句来使用资源吗?以示例形式给出的答案将是令人敬畏的;我几乎已经弄明白了,但是我必须做的一件事我没做错。
感谢您的时间,
杨克
来源:
http://tukaani.org/xz/java.html
查看该源的目录结构可以提供更好的建议:
答案 0 :(得分:4)
经过多次实验,我找到了一个解决方案,虽然可能不是正确的方法,但绝对有效。关键是:
将外部库(在我的情况下为.jar)定义为模块依赖项。
将您的外部资源添加为(IntelliJ调用的)“提取的目录”。
对于第一项,请转到文件 - >项目结构。单击左侧“项目设置”列表中的“模块”。在右侧列表中,您将看到属于您的项目的模块列表(无论它们是什么)。不要管它,但要确保它突出显示/被选为当前模块。你想要的是该模块的设置,它将显示在右侧的窗口中。转到“依赖关系”选项卡。在屏幕的最右边部分将是一个绿色的加号。单击它,选择“Jars或目录”并导航到您想要随完成的jar一起提供的相关资源。
接下来,通过转到File - >将该资源添加为解压缩的目录。项目结构。然后在左侧的项目设置列表中的“工件”。单击顶部的绿色加号以创建一个新的“Jar”工件“来自具有依赖关系的模块”。在右侧窗口的“输出布局”选项卡下,单击绿色小加号,然后选择“提取的目录”。再一次,浏览你的珍贵罐子。
您现在应该能够成功构建一个jar工件,其中包含您在设计时需要运行的所有资源。
答案 1 :(得分:1)
答案 2 :(得分:0)
可以(希望你)将程序运送到自己的jar中,并将相关的“库”作为单独的jar发送
你应该提供一种方法来运行程序,使用java命令的正确-classpath参数,以便java可以找到你的jar和依赖的jar ...有多种方法可以做到这一点......请参阅上面的链接。
罗尔夫