【发布时间】:2015-01-25 13:33:31
【问题描述】:
我为家庭作业做了一个缓存模拟器程序,我决定使用java。我想创建一个可以在任何系统上运行的可执行 jar 文件,但问题是我的程序从外部文本文件收集数据。如何在 jar 中包含该文本文件,以便在执行文件时不会出现任何问题?顺便说一句,我正在使用 NetBeans IDE。
【问题讨论】:
标签: java netbeans jar executable
我为家庭作业做了一个缓存模拟器程序,我决定使用java。我想创建一个可以在任何系统上运行的可执行 jar 文件,但问题是我的程序从外部文本文件收集数据。如何在 jar 中包含该文本文件,以便在执行文件时不会出现任何问题?顺便说一句,我正在使用 NetBeans IDE。
【问题讨论】:
标签: java netbeans jar executable
如果您不需要写入文件,请复制到src 目录。您将无法再像 File 一样访问,而是需要使用 Class#getResource,将源树顶部的路径传递到文件存储位置。
例如,如果你把它放在src/data 中,那么你需要使用getClass().getResource("/data/..."),将文件名传递给它......
清理并构建...
【讨论】:
是的,我说是的。真正使您的 jarfile 与文本文件一起制作。请确保链接到文本文件所在文件夹的正确编码和良好链接。 下面的三个示例方法应该可以让您无论使用任何 IDE 都可以工作。如果您还需要进一步的帮助,请给我打分并大声喊叫.......Sectona
方法一
第 1 步:- 使用 cd 命令找到包含您的 java 文件的文件夹。
第 2 步:- 输入文件夹位置后,通过 dir 查看您的 java 文件 命令。
第 3 步:- 使用编译您的 java 文件 javac文件.java
第 4 步:- 通过键入 dir 命令查看类文件。
第 5 步:- 现在您要创建一个清单文件。
I)Go to folder<br>
II)Right-click->New->Text Document
III)open text document. Type main class name ,
Main-Class: main-class-name
IV)Save this file your wish like MyManifest.txt
第 6 步:- 创建可执行的 jar 文件类型
jar cfm JarFileName.jar MyManifest.txt JavaFike1.class JavaFile2.class
第 7 步:- 现在您可以在文件夹中看到可执行 jar 文件。点击文件即可 运行。
第 8 步:- 要通过命令提示符运行此文件,然后键入 java -jar JarFileName.jar
第 9 步:- 你完成了这个..........Sectona
方法二
创建JAR文件的命令基本格式为:
jar cf jar-file 输入文件
此命令中使用的选项和参数是:
方法三
import java.io.*;
import java.util.jar.*;
public class CreateJar {
public static int buffer = 10240;
protected void createJarArchive(File jarFile, File[] listFiles) {
try {
byte b[] = new byte[buffer];
FileOutputStream fout = new FileOutputStream(jarFile);
JarOutputStream out = new JarOutputStream(fout, new Manifest());
for (int i = 0; i < listFiles.length; i++) {
if (listFiles[i] == null || !listFiles[i].exists()|| listFiles[i].isDirectory())
System.out.println();
JarEntry addFiles = new JarEntry(listFiles[i].getName());
addFiles.setTime(listFiles[i].lastModified());
out.putNextEntry(addFiles);
FileInputStream fin = new FileInputStream(listFiles[i]);
while (true) {
int len = fin.read(b, 0, b.length);
if (len <= 0)
break;
out.write(b, 0, len);
}
fin.close();
}
out.close();
fout.close();
System.out.println("Jar File is created successfully.");
} catch (Exception ex) {}
}
public static void main(String[]args){
CreateJar jar=new CreateJar();
File folder = new File("C://Answers//Examples.txt");
File[] files = folder.listFiles();
File file=new File("C://Answers//Examples//Examples.jar");
jar.createJarArchive(file, files);
}
}
【讨论】:
您可以将任何文件保存在类路径中并作为类路径资源读取。示例代码如下。
InputStream in = this.getClass().getClassLoader().getResourceAsStream("yourinputFile.txt");
您的 jar 将是类路径,这意味着您可以将文件保存在 java 源代码的根文件夹中,该文件夹将在构建时添加到 jar 文件中。
【讨论】: