private static void Initialize() { VfsDirectory root = new VfsDirectory(); root.AddDirectory("lib").AddDirectory("security").Add("cacerts", new VfsCacertsEntry()); VfsDirectory bin = new VfsDirectory(); root.Add("bin", bin); root.Add("assembly", new VfsAssembliesDirectory()); AddDummyLibrary(bin, "zip"); AddDummyLibrary(bin, "awt"); AddDummyLibrary(bin, "rmi"); AddDummyLibrary(bin, "w2k_lsa_auth"); AddDummyLibrary(bin, "jaas_nt"); AddDummyLibrary(bin, "jaas_unix"); AddDummyLibrary(bin, "net"); AddDummyLibrary(bin, "splashscreen"); AddDummyLibrary(bin, "osx"); AddDummyLibrary(bin, "management"); bin.Add("java", new VfsJavaExe()); bin.Add("javaw", new VfsJavaExe()); bin.Add("java.exe", new VfsJavaExe()); bin.Add("javaw.exe", new VfsJavaExe()); // this is a weird loop back, the vfs.zip resource is loaded from vfs, // because that's the easiest way to construct a ZipFile from a Stream. java.util.zip.ZipFile zf = new java.util.zip.ZipFile(RootPath + "vfs.zip"); java.util.Enumeration e = zf.entries(); while (e.hasMoreElements()) { AddZipEntry(zf, root, (java.util.zip.ZipEntry)e.nextElement()); } Interlocked.CompareExchange(ref VirtualFileSystem.root, root, null); }
private static void Initialize() { VfsDirectory root = new VfsDirectory(); root.AddDirectory("lib").AddDirectory("security").Add("cacerts", new VfsCacertsEntry()); VfsDirectory bin = new VfsDirectory(); root.Add("bin", bin); root.Add("assembly", new VfsAssembliesDirectory()); AddDummyLibrary(bin, "zip"); AddDummyLibrary(bin, "awt"); AddDummyLibrary(bin, "rmi"); AddDummyLibrary(bin, "w2k_lsa_auth"); AddDummyLibrary(bin, "jaas_nt"); AddDummyLibrary(bin, "jaas_unix"); AddDummyLibrary(bin, "net"); AddDummyLibrary(bin, "splashscreen"); AddDummyLibrary(bin, "osx"); AddDummyLibrary(bin, "management"); bin.Add("java", new VfsJavaExe()); bin.Add("javaw", new VfsJavaExe()); bin.Add("java.exe", new VfsJavaExe()); bin.Add("javaw.exe", new VfsJavaExe()); // this is a weird loop back, the vfs.zip resource is loaded from vfs, // because that's the easiest way to construct a ZipFile from a Stream. //Console.Error.WriteLine($"Opening virtual Zip file: {RootPath + "vfs.zip"}"); java.util.zip.ZipFile zf = new java.util.zip.ZipFile(RootPath + "vfs.zip"); java.util.Enumeration e = zf.entries(); while (e.hasMoreElements()) { AddZipEntry(zf, root, (java.util.zip.ZipEntry)e.nextElement()); } // make "lib/security/local_policy.jar" point to "lib/security/US_export_policy.jar" // to get the unrestricted crypto policy VfsDirectory security = (VfsDirectory)((VfsDirectory)root.GetEntry("lib")).GetEntry("security"); security.Add("local_policy.jar", security.GetEntry("US_export_policy.jar")); Interlocked.CompareExchange(ref VirtualFileSystem.root, root, null); }
private static void AddZipEntry(java.util.zip.ZipFile zf, VfsDirectory root, java.util.zip.ZipEntry entry) { if (entry.isDirectory()) { return; } string[] path = entry.getName().Split('/'); VfsDirectory dir = root; for (int i = 0; i < path.Length - 1; i++) { VfsDirectory existing = dir.GetEntry(path[i]) as VfsDirectory; if (existing == null) { existing = dir.AddDirectory(path[i]); } dir = existing; } dir.Add(path[path.Length - 1], new VfsZipEntry(zf, entry)); }
internal ZipEntryStream(java.util.zip.ZipFile zipFile, java.util.zip.ZipEntry entry) { this.zipFile = zipFile; this.entry = entry; inp = zipFile.getInputStream(entry); }
private static void Initialize() { VfsDirectory root = new VfsDirectory(); root.AddDirectory("lib").AddDirectory("security").Add("cacerts", new VfsCacertsEntry()); VfsDirectory bin = new VfsDirectory(); root.Add("bin", bin); root.Add("assembly", new VfsAssembliesDirectory()); AddDummyLibrary(bin, "zip"); AddDummyLibrary(bin, "awt"); AddDummyLibrary(bin, "rmi"); AddDummyLibrary(bin, "w2k_lsa_auth"); AddDummyLibrary(bin, "jaas_nt"); AddDummyLibrary(bin, "jaas_unix"); AddDummyLibrary(bin, "unpack"); AddDummyLibrary(bin, "net"); AddDummyLibrary(bin, "splashscreen"); AddDummyLibrary(bin, "osx"); bin.Add("java", new VfsJavaExe()); bin.Add("javaw", new VfsJavaExe()); bin.Add("java.exe", new VfsJavaExe()); bin.Add("javaw.exe", new VfsJavaExe()); // this is a weird loop back, the vfs.zip resource is loaded from vfs, // because that's the easiest way to construct a ZipFile from a Stream. java.util.zip.ZipFile zf = new java.util.zip.ZipFile(RootPath + "vfs.zip"); java.util.Enumeration e = zf.entries(); while (e.hasMoreElements()) { AddZipEntry(zf, root, (java.util.zip.ZipEntry)e.nextElement()); } // make "lib/security/local_policy.jar" point to "lib/security/US_export_policy.jar" // to get the unrestricted crypto policy VfsDirectory security = (VfsDirectory)((VfsDirectory)root.GetEntry("lib")).GetEntry("security"); security.Add("local_policy.jar", security.GetEntry("US_export_policy.jar")); Interlocked.CompareExchange(ref VirtualFileSystem.root, root, null); }
internal VfsZipEntry(java.util.zip.ZipFile zipFile, java.util.zip.ZipEntry entry) { this.zipFile = zipFile; this.entry = entry; }