fix sun.tools.jar

diff --git a/src/share/classes/sun/tools/jar/Main.java b/src/share/classes/sun/tools/jar/Main.java
--- a/src/share/classes/sun/tools/jar/Main.java
+++ b/src/share/classes/sun/tools/jar/Main.java
@@ -241,6 +241,16 @@
                 }
             } else if (xflag) {
                 replaceFSC(files);
+                // Current working directory
+                cwd = System.getProperty("user.dir");
+                if (cwd == null) {
+                    fatalError(getMsg("error.no.cwd"));
+                }
+                cwd = (new File(cwd)).getCanonicalPath();
+                if (!cwd.endsWith(File.separator)) {
+                    cwd += File.separator;
+                }
+
                 if (fname != null && files != null) {
                     extract(fname, files);
                 } else {
@@ -802,17 +812,6 @@
      * Extracts specified entries from JAR file.
      */
     void extract(InputStream in, String files[]) throws IOException {
-        // Current working directory
-
-        cwd = System.getProperty("user.dir");
-        if (cwd == null) {
-            fatalError(getMsg("error.no.cwd"));
-        }
-        cwd = (new File(cwd)).getCanonicalPath();
-        if (!cwd.endsWith(File.separator)) {
-            cwd += File.separator;
-        }
-
         // Extract the files
 
         ZipInputStream zis = new ZipInputStream(in);
