我刚刚创建了一个简单的java应用程序,它将为我们的数据库生成实体类.我将保存到本地光盘的那些java类.到目前为止一切正常.
现在我想从我的主应用程序中的那些java类生成一个JAR文件.我知道,我可以操作jar文件,我还读到了在运行时将类添加到jar文件.
但就我而言,我的构建路径中没有类.我需要的是从刚刚创建的java文件创建类文件并将它们放入我的jar文件中.
这可能在我的java应用程序中吗?
我这样做的原因是我们的数据库将一直由许多人扩展,我不想手动将这些字段添加到我的实体.所以我想创建一个从我们的数据库中扫描systables的应用程序,并从这些信息中生成java实体文件.但是现在我需要在生成它们之后在类文件中编译这些java文件并将它们添加到我的最终jar文件中.
感谢您提供有关此问题的任何帮助和/或信息.
许多问候,霍克
mae*_*ics 10
查看课程java.util.jar.JarOutputStream(以及Web上的许多使用示例).例如:
FileOutputStream fout = new FileOutputStream("c:/tmp/foo.jar");
JarOutputStream jarOut = new JarOutputStream(fout);
jarOut.putNextEntry(new ZipEntry("com/foo/")); // Folders must end with "/".
jarOut.putNextEntry(new ZipEntry("com/foo/Foo.class"));
jarOut.write(getBytes("com/foo/Foo.class"));
jarOut.closeEntry();
jarOut.putNextEntry(new ZipEntry("com/foo/Bar.class"));
jarOut.write(getBytes("com/foo/Bar.class"));
jarOut.closeEntry();
jarOut.close();
fout.close();
Run Code Online (Sandbox Code Playgroud)
当然,您的程序可能会检查文件系统并遍历目录和文件结构以生成条目名称和内容,但此示例显示了主要功能.不要忘记正确处理异常并关闭finally块中的流.
另外,请记住清单文件只是" META-INF/MANIFEST.MF"中的条目,它只是一个文本文件,每个清单文件规范都有格式化规则.
将Java源文件动态编译为Class文件是一项单独的任务,充满了它自身的复杂性,但课程javax.tools.JavaCompiler是一个很好的起点.这个问题也是一个很好的介绍:如何以编程方式编译和实例化Java类?
| 归档时间: |
|
| 查看次数: |
6209 次 |
| 最近记录: |