我的项目结构如何
|---> src (folder)
|----> Repository (folder)
|----> util (folder)
|----> config (folder)
|---> Repository (folder)
|---> property file 1
|---> property file 2
|---> property file 3
Config文件夹与Repository文件夹具有相同的结构。
Util文件夹结构
|---> util (folder)
|---> Main class file
|---> Sub main class file
|---> common function file
|---> Report file
现在我的默认文件中的util文件夹下的Main类文件从Repository和config文件夹下的文件中获取数据。它还有一个链接,用于打开Sub主类文件,并使用common文件本身下的common函数和Report文件。
我成功地能够从Eclipse运行代码,但现在我需要创建一个jar文件来执行这些操作。我尝试从命令提示符和Eclipse创建一个jar文件,它打开Main类文件UI但无法从其他文件夹文件中提取数据或无法打开子主类文件。
我对这个罐子里的东西很新,并且不太了解它。
建议?
答案 0 :(得分:3)
您可以使用以下命令构建jar并指定主类入口点(Main)。
jar cfe output.jar Main src/Repository/* src/util/*.class
答案 1 :(得分:1)
创建jar时可以编写多个文件
jar cf Output.jar src/util/Main.class src/util/SubMain.class src/Repository/*
编辑 根据评论中更新的要求
使用此方法,您只需创建jar
即可。请注意,它与可执行jar不同。要创建可执行文件jar
,您必须指定在单击此jar
时要执行的主类。
要指定该文件,您需要创建MANIFEST.MF
创建一个名为MANIFEST.MF
的文件并将其放在META-INF文件夹中,并在命令行中创建jar
时将其包含在内
META-INF/MANIFEST.MF
Manifest-Version: 1.0
Main-Class: com.path.to.MainClass
答案 2 :(得分:0)
当您在jar中打包文件时,它们不再是文件。它们变成溪流/斑点。确保您没有在代码中加载任何属性文件File
。使用下面的代码加载属性文件。
InputStream inputStreamObject = getClass().getResourceAsStream(file_name);
BufferedReader streamReader = new BufferedReader(new InputStreamReader(inputStreamObject, "UTF-8"));
StringBuilder responseStrBuilder = new StringBuilder();
String inputStr;
while ((inputStr = streamReader.readLine()) != null)
responseStrBuilder.append(inputStr);