{"id":31180,"date":"2023-12-19T11:06:08","date_gmt":"2023-07-17T23:41:11","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86java%e4%bb%a3%e7%a0%81%e8%bf%9b%e8%a1%8c%e5%8f%8d%e7%bc%96%e8%af%91-2\/"},"modified":"2025-08-12T22:43:03","modified_gmt":"2025-08-12T14:43:03","slug":"%e5%b0%86java%e4%bb%a3%e7%a0%81%e8%bf%9b%e8%a1%8c%e5%8f%8d%e7%bc%96%e8%af%91-2","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86java%e4%bb%a3%e7%a0%81%e8%bf%9b%e8%a1%8c%e5%8f%8d%e7%bc%96%e8%af%91-2\/","title":{"rendered":"\u5c06Java\u4ee3\u7801\u8fdb\u884c\u53cd\u7f16\u8bd1"},"content":{"rendered":"<p>\u73af\u5883\u662fUbuntu 16.04\u3002<\/p>\n<p>\u56e0\u4e3a10\u5e74\u524d\u521b\u5efa\u7684 classfile \u6e90\u4ee3\u7801\u5df2\u7ecf\u4e22\u5931\u4e86\uff0c\u6240\u4ee5\u9700\u8981\u5bf9\u5176\u8fdb\u884c\u53cd\u7f16\u8bd1\u3002<\/p>\n<h1>\u60a8\u597d\u300c\u4f7f\u7528Jad\u5de5\u5177\u53cd\u7f16\u8bd1class\u6587\u4ef6\u300d<\/p>\n<p>\u6211\u8981\u8bd5\u7740\u770b\u770b\u3002<\/p>\n<pre class=\"post-pre\"><code>\r\nJad 1.5.8e for Linux on Intel platform (214917 bytes).\r\nJad 1.5.8e for Linux (statically linked) (389972 bytes) - take this version if the one above crashes or displays the \"seek error\" message.\r\n<\/code><\/pre>\n<p>\u4e0b\u8f7d\u5e76\u8fd0\u884c\u4e0a\u9762\u7684\u4e1c\u897f<\/p>\n<pre class=\"post-pre\"><code>\r\n.\/jad: error while loading shared libraries: libstdc++-libc6.2-2.so.3: cannot open shared object file: No such file or directory\r\n<\/code><\/pre>\n<p>\u56e0\u4e3a\u8fd9\u6837\uff0c\u4e0b\u8f7d\u5e76\u8fd0\u884c\u4e0b\u65b9\u7684\u5185\u5bb9\u3002\u5c1d\u8bd5\u5c06..\/PDFConverter.class\u53cd\u7f16\u8bd1\u3002<\/p>\n<pre class=\"post-pre\"><code>\r\n$ .\/jad ..\/PDFConverter.class \r\nParsing ..\/PDFConverter.class...The class file version is 49.0 (only 45.3, 46.0 and 47.0 are supported)\r\n Generating PDFConverter.jad\r\nOverlapped try statements detected. Not all exception handlers will be resolved in the method main\r\nCouldn't fully decompile method main\r\nCouldn't resolve all exception handlers in method main\r\n<\/code><\/pre>\n<p>\u5509\uff0c\u770b\u8d77\u6765\u53ea\u652f\u630145.3\u300146.0\u548c47.0\u7248\u672c\u3002\u6211\u4e00\u76f4\u89c9\u5f97\u4e0d\u592a\u5bf9\u52b2\uff0c\u7ed3\u679c\u53d1\u73b0\u6709\u4e00\u4e2a\u540d\u4e3aPDFConverter.jad\u7684\u6587\u4ef6\u751f\u6210\u4e86\u3002<\/p>\n<pre class=\"post-pre\"><code>\r\n$ head -30 PDFConverter.jad \r\n\/\/ Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.\r\n\/\/ Jad home page: http:\/\/www.geocities.com\/kpdus\/jad.html\r\n\/\/ Decompiler options: packimports(3) \r\n\/\/ Source File Name:   PDFConverter.java\r\n\r\nimport com.sun.star.beans.PropertyValue;\r\nimport com.sun.star.comp.helper.Bootstrap;\r\nimport com.sun.star.frame.XComponentLoader;\r\nimport com.sun.star.frame.XStorable;\r\nimport com.sun.star.lang.XComponent;\r\nimport com.sun.star.lang.XMultiComponentFactory;\r\nimport com.sun.star.uno.UnoRuntime;\r\nimport com.sun.star.uno.XComponentContext;\r\nimport com.sun.star.util.XCloseable;\r\nimport java.io.File;\r\n\r\npublic class PDFConverter\r\n{\r\n\r\n    public PDFConverter()\r\n    {\r\n    }\r\n\r\n    public static void main(String args[])\r\n    {\r\n        String s = convertToURL(args[0]);\r\n        String s1 = getFilterName(args[0]);\r\n        String s2 = s.replaceAll(\"\\\\..{3}\\\\Z\", \".pdf\");\r\n        XComponentContext xcomponentcontext = Bootstrap.bootstrap();\r\n        XMultiComponentFactory xmulticomponentfactory = xcomponentcontext.getServiceManager(); \r\n<\/code><\/pre>\n<h1>\u4eac\u4e1c-Java\u53cd\u7f16\u8bd1\u5668\u53ef\u4ee5\u4ece\u8fd9\u4e2a\u7f51\u5740\u4e0b\u8f7d\uff1ahttp:\/\/jd.benow.ca\/<\/p>\n<p>\u56e0\u4e3a\u5c4f\u5e55\u622a\u56fe\u662fWindows\u7684\uff0c\u6240\u4ee5\u6211\u6709\u4e00\u79cd\u4e0d\u597d\u7684\u9884\u611f\uff0c\u4f46\u662f\u591a\u5e73\u53f0\u8ba9\u6211\u611f\u5230\u5b89\u5fc3\u3002\u6211\u8981\u4e0b\u8f7d jd-gui_1.4.0-0_all.deb\u3002<\/p>\n<pre class=\"post-pre\"><code>\r\n$ sudo dpkg -i jd-gui_1.4.0-0_all.deb \r\n[sudo] nanbuwks \u306e\u30d1\u30b9\u30ef\u30fc\u30c9: \r\n\u4ee5\u524d\u306b\u672a\u9078\u629e\u306e\u30d1\u30c3\u30b1\u30fc\u30b8 jd-gui \u3092\u9078\u629e\u3057\u3066\u3044\u307e\u3059\u3002\r\n(\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u8aad\u307f\u8fbc\u3093\u3067\u3044\u307e\u3059 ... \u73fe\u5728 793826 \u500b\u306e\u30d5\u30a1\u30a4\u30eb\u3068\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u307e\u3059\u3002)\r\njd-gui_1.4.0-0_all.deb \u3092\u5c55\u958b\u3059\u308b\u6e96\u5099\u3092\u3057\u3066\u3044\u307e\u3059 ...\r\njd-gui (1.4.0-0) \u3092\u5c55\u958b\u3057\u3066\u3044\u307e\u3059...\r\njd-gui (1.4.0-0) \u3092\u8a2d\u5b9a\u3057\u3066\u3044\u307e\u3059 ...\r\n\r\n<\/code><\/pre>\n<p>\u4f7f\u7528Unity\u7684Dash\u8c03\u7528JD-GUI\u5e76\u6267\u884c<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d0b4b37434c4406be5f00\/17-0.png\" alt=\"image\" \/>\u4e8b\u60c5\u8fdb\u5c55\u5f97\u4e0d\u9519\u3002<\/p>\n<h1>\u5728\u4e2d\u6587\u4e2d\uff0c\u53ea\u9700\u8981\u4e00\u500b\u9078\u9805\u5c31\u53ef\u4ee5\u89e3\u91cb\u9019\u500b\u8a5e\uff0c\u5c31\u662f\u300c\u5bf9\u6bd4\u300d\u3002<\/p>\n<pre class=\"post-pre\"><code>\r\n$ diff PDFConverter.jad ..\/PDFConverter-jdgui.java \r\n1,5d0\r\n&lt; \/\/ Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.\r\n&lt; \/\/ Jad home page: http:\/\/www.geocities.com\/kpdus\/jad.html\r\n&lt; \/\/ Decompiler options: packimports(3) \r\n&lt; \/\/ Source File Name:   PDFConverter.java\r\n&lt; \r\n19,20c14,16\r\n&lt; \r\n&lt;     public PDFConverter()\r\n---\r\n&gt;   public static void main(String[] paramArrayOfString)\r\n&gt;   {\r\n&gt;     try\r\n21a18,61\r\n&gt;       String str1 = convertToURL(paramArrayOfString[0]);\r\n&gt;       String str2 = getFilterName(paramArrayOfString[0]);\r\n&gt;       String str3 = str1.replaceAll(\"\\\\..{3}\\\\Z\", \".pdf\");\r\n&gt;       \r\n&gt;       XComponentContext localXComponentContext = Bootstrap.bootstrap();\r\n&gt;       XMultiComponentFactory localXMultiComponentFactory = localXComponentContext.getServiceManager();\r\n&gt;       \r\n&gt;       Object localObject1 = localXMultiComponentFactory.createInstanceWithContext(\"com.sun.star.frame.Desktop\", localXComponentContext);\r\n&gt;       \r\n&gt;       XComponentLoader localXComponentLoader = (XComponentLoader)UnoRuntime.queryInterface(XComponentLoader.class, localObject1);\r\n&gt;       \r\n&gt;       PropertyValue[] arrayOfPropertyValue = new PropertyValue[2];\r\n&gt;       \r\n&gt;       arrayOfPropertyValue[0] = new PropertyValue();\r\n&gt;       arrayOfPropertyValue[0].Name = \"Hidden\";\r\n&gt;       arrayOfPropertyValue[0].Value = new Boolean(true);\r\n&gt;       arrayOfPropertyValue[1] = new PropertyValue();\r\n&gt;       arrayOfPropertyValue[1].Name = \"ReadOnly\";\r\n&gt;       arrayOfPropertyValue[1].Value = new Boolean(true);\r\n&gt;       \r\n&gt;       XComponent localXComponent1 = localXComponentLoader.loadComponentFromURL(str1, \"_blank\", 0, arrayOfPropertyValue);\r\n&gt;       \r\n&gt;       arrayOfPropertyValue[0] = new PropertyValue();\r\n&gt;       arrayOfPropertyValue[0].Name = \"FilterName\";\r\n&gt;       arrayOfPropertyValue[0].Value = str2;\r\n&gt;       arrayOfPropertyValue[1] = new PropertyValue();\r\n&gt;       arrayOfPropertyValue[1].Name = \"Overwrite\";\r\n&gt;       arrayOfPropertyValue[1].Value = new Boolean(true);\r\n&gt;       \r\n&gt;       XStorable localXStorable = (XStorable)UnoRuntime.queryInterface(XStorable.class, localXComponent1);\r\n&gt;       \r\n&gt;       localXStorable.storeToURL(str3, arrayOfPropertyValue);\r\n&gt;       \r\n&gt;       XCloseable localXCloseable = (XCloseable)UnoRuntime.queryInterface(XCloseable.class, localXStorable);\r\n&gt;       if (localXCloseable != null)\r\n&gt;       {\r\n&gt;         localXCloseable.close(false);\r\n&gt;       }\r\n&gt;       else\r\n&gt;       {\r\n&gt;         XComponent localXComponent2 = (XComponent)UnoRuntime.queryInterface(XComponent.class, localXStorable);\r\n&gt;         \r\n&gt;         localXComponent2.dispose();\r\n&gt;       }\r\n23,24c63\r\n&lt; \r\n&lt;     public static void main(String args[])\r\n---\r\n&gt;     catch (Exception localException)\r\n26,69c65,66\r\n&lt;         String s = convertToURL(args[0]);\r\n&lt;         String s1 = getFilterName(args[0]);\r\n&lt;         String s2 = s.replaceAll(\"\\\\..{3}\\\\Z\", \".pdf\");\r\n&lt;         XComponentContext xcomponentcontext = Bootstrap.bootstrap();\r\n&lt;         XMultiComponentFactory xmulticomponentfactory = xcomponentcontext.getServiceManager();\r\n&lt;         Object obj = xmulticomponentfactory.createInstanceWithContext(\"com.sun.star.frame.Desktop\", xcomponentcontext);\r\n&lt;         XComponentLoader xcomponentloader = (XComponentLoader)UnoRuntime.queryInterface(com\/sun\/star\/frame\/XComponentLoader, obj);\r\n&lt;         PropertyValue apropertyvalue[] = new PropertyValue[2];\r\n&lt;         apropertyvalue[0] = new PropertyValue();\r\n&lt;         apropertyvalue[0].Name = \"Hidden\";\r\n&lt;         apropertyvalue[0].Value = new Boolean(true);\r\n&lt;         apropertyvalue[1] = new PropertyValue();\r\n&lt;         apropertyvalue[1].Name = \"ReadOnly\";\r\n&lt;         apropertyvalue[1].Value = new Boolean(true);\r\n&lt;         XComponent xcomponent = xcomponentloader.loadComponentFromURL(s, \"_blank\", 0, apropertyvalue);\r\n&lt;         apropertyvalue[0] = new PropertyValue();\r\n&lt;         apropertyvalue[0].Name = \"FilterName\";\r\n&lt;         apropertyvalue[0].Value = s1;\r\n&lt;         apropertyvalue[1] = new PropertyValue();\r\n&lt;         apropertyvalue[1].Name = \"Overwrite\";\r\n&lt;         apropertyvalue[1].Value = new Boolean(true);\r\n&lt;         XStorable xstorable = (XStorable)UnoRuntime.queryInterface(com\/sun\/star\/frame\/XStorable, xcomponent);\r\n&lt;         xstorable.storeToURL(s2, apropertyvalue);\r\n&lt;         XCloseable xcloseable = (XCloseable)UnoRuntime.queryInterface(com\/sun\/star\/util\/XCloseable, xstorable);\r\n&lt;         if(xcloseable != null)\r\n&lt;         {\r\n&lt;             xcloseable.close(false);\r\n&lt;         } else\r\n&lt;         {\r\n&lt;             XComponent xcomponent1 = (XComponent)UnoRuntime.queryInterface(com\/sun\/star\/lang\/XComponent, xstorable);\r\n&lt;             xcomponent1.dispose();\r\n&lt;         }\r\n&lt;         System.exit(0);\r\n&lt;         break MISSING_BLOCK_LABEL_321;\r\n&lt;         Exception exception;\r\n&lt;         exception;\r\n&lt;         exception.printStackTrace();\r\n&lt;         System.exit(1);\r\n&lt;         System.exit(0);\r\n&lt;         break MISSING_BLOCK_LABEL_321;\r\n&lt;         Exception exception1;\r\n&lt;         exception1;\r\n&lt;         System.exit(0);\r\n&lt;         throw exception1;\r\n---\r\n&gt;       localException.printStackTrace();\r\n&gt;       System.exit(1);\r\n71,73c68\r\n&lt; \r\n&lt;     private static String convertToURL(String s)\r\n&lt;         throws Exception\r\n---\r\n&gt;     finally\r\n75,78c70\r\n&lt;         File file = new File(s);\r\n&lt;         StringBuffer stringbuffer = new StringBuffer(\"file:\/\/\/\");\r\n&lt;         stringbuffer.append(file.getCanonicalPath().replace('\\\\', '\/'));\r\n&lt;         return stringbuffer.toString();\r\n---\r\n&gt;       System.exit(0);\r\n80,99c72,97\r\n&lt; \r\n&lt;     private static String getFilterName(String s)\r\n&lt;         throws Exception\r\n&lt;     {\r\n&lt;         String s1 = s.substring(s.length() - 4).toLowerCase();\r\n&lt;         String s2 = \"\";\r\n&lt;         if(s1.equals(\".doc\") || s1.equals(\".dot\") || s1.equals(\".sxw\") || s1.equals(\".stw\") || s1.equals(\".odt\") || s1.equals(\".ott\"))\r\n&lt;             s2 = \"writer_pdf_Export\";\r\n&lt;         else\r\n&lt;         if(s1.equals(\".xls\") || s1.equals(\".xlt\") || s1.equals(\".sxc\") || s1.equals(\".stc\") || s1.equals(\".ods\") || s1.equals(\".ots\"))\r\n&lt;             s2 = \"calc_pdf_Export\";\r\n&lt;         else\r\n&lt;         if(s1.equals(\".ppt\") || s1.equals(\".pot\") || s1.equals(\".sxi\") || s1.equals(\".sti\") || s1.equals(\".odp\") || s1.equals(\".otp\"))\r\n&lt;             s2 = \"impress_pdf_Export\";\r\n&lt;         else\r\n&lt;         if(s1.equals(\".sxd\") || s1.equals(\".std\") || s1.equals(\".odg\") || s1.equals(\".otg\"))\r\n&lt;             s2 = \"draw_pdf_Export\";\r\n&lt;         else\r\n&lt;             throw new Exception(\"There is no corresponding filter.\");\r\n&lt;         return s2;\r\n---\r\n&gt;   }\r\n&gt;   \r\n&gt;   private static String convertToURL(String paramString)\r\n&gt;     throws Exception\r\n&gt;   {\r\n&gt;     File localFile = new File(paramString);\r\n&gt;     StringBuffer localStringBuffer = new StringBuffer(\"file:\/\/\/\");\r\n&gt;     localStringBuffer.append(localFile.getCanonicalPath().replace('\\\\', '\/'));\r\n&gt;     return localStringBuffer.toString();\r\n&gt;   }\r\n&gt;   \r\n&gt;   private static String getFilterName(String paramString)\r\n&gt;     throws Exception\r\n&gt;   {\r\n&gt;     String str1 = paramString.substring(paramString.length() - 4).toLowerCase();\r\n&gt;     String str2 = \"\";\r\n&gt;     if ((str1.equals(\".doc\")) || (str1.equals(\".dot\")) || (str1.equals(\".sxw\")) || (str1.equals(\".stw\")) || (str1.equals(\".odt\")) || (str1.equals(\".ott\"))) {\r\n&gt;       str2 = \"writer_pdf_Export\";\r\n&gt;     } else if ((str1.equals(\".xls\")) || (str1.equals(\".xlt\")) || (str1.equals(\".sxc\")) || (str1.equals(\".stc\")) || (str1.equals(\".ods\")) || (str1.equals(\".ots\"))) {\r\n&gt;       str2 = \"calc_pdf_Export\";\r\n&gt;     } else if ((str1.equals(\".ppt\")) || (str1.equals(\".pot\")) || (str1.equals(\".sxi\")) || (str1.equals(\".sti\")) || (str1.equals(\".odp\")) || (str1.equals(\".otp\"))) {\r\n&gt;       str2 = \"impress_pdf_Export\";\r\n&gt;     } else if ((str1.equals(\".sxd\")) || (str1.equals(\".std\")) || (str1.equals(\".odg\")) || (str1.equals(\".otg\"))) {\r\n&gt;       str2 = \"draw_pdf_Export\";\r\n&gt;     } else {\r\n&gt;       throw new Exception(\"There is no corresponding filter.\");\r\n100a99,100\r\n&gt;     return str2;\r\n&gt;   }\r\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u73af\u5883\u662fUbuntu 16.04\u3002 \u56e0\u4e3a10\u5e74\u524d\u521b\u5efa\u7684 classfile \u6e90\u4ee3\u7801\u5df2\u7ecf\u4e22\u5931\u4e86\uff0c\u6240\u4ee5\u9700\u8981\u5bf9\u5176\u8fdb\u884c\u53cd [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[227],"class_list":["post-31180","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-227"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u5c06Java\u4ee3\u7801\u8fdb\u884c\u53cd\u7f16\u8bd1 - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"\u5173\u4e8e\u5c06Java\u4ee3\u7801\u8fdb\u884c\u53cd\u7f16\u8bd1\u7684\u6280\u672f\u6587\u7ae0\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5c06java\u4ee3\u7801\u8fdb\u884c\u53cd\u7f16\u8bd1-2\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u5c06Java\u4ee3\u7801\u8fdb\u884c\u53cd\u7f16\u8bd1\" \/>\n<meta property=\"og:description\" content=\"\u5173\u4e8e\u5c06Java\u4ee3\u7801\u8fdb\u884c\u53cd\u7f16\u8bd1\u7684\u6280\u672f\u6587\u7ae0\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5c06java\u4ee3\u7801\u8fdb\u884c\u53cd\u7f16\u8bd1-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-17T23:41:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-12T14:43:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d0b4b37434c4406be5f00\/17-0.png\" \/>\n<meta name=\"author\" content=\"\u9038, \u79d1\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u9038, \u79d1\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86java%e4%bb%a3%e7%a0%81%e8%bf%9b%e8%a1%8c%e5%8f%8d%e7%bc%96%e8%af%91-2\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86java%e4%bb%a3%e7%a0%81%e8%bf%9b%e8%a1%8c%e5%8f%8d%e7%bc%96%e8%af%91-2\/\",\"name\":\"\u5c06Java\u4ee3\u7801\u8fdb\u884c\u53cd\u7f16\u8bd1 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-07-17T23:41:11+00:00\",\"dateModified\":\"2025-08-12T14:43:03+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/85c1dae56e6ea1e695c73d33c684d487\"},\"description\":\"\u5173\u4e8e\u5c06Java\u4ee3\u7801\u8fdb\u884c\u53cd\u7f16\u8bd1\u7684\u6280\u672f\u6587\u7ae0\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86java%e4%bb%a3%e7%a0%81%e8%bf%9b%e8%a1%8c%e5%8f%8d%e7%bc%96%e8%af%91-2\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86java%e4%bb%a3%e7%a0%81%e8%bf%9b%e8%a1%8c%e5%8f%8d%e7%bc%96%e8%af%91-2\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86java%e4%bb%a3%e7%a0%81%e8%bf%9b%e8%a1%8c%e5%8f%8d%e7%bc%96%e8%af%91-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u5c06Java\u4ee3\u7801\u8fdb\u884c\u53cd\u7f16\u8bd1\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/85c1dae56e6ea1e695c73d33c684d487\",\"name\":\"\u9038, \u79d1\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c94f6d9cbbfbca863fab309840bd690c153c95f8490c290ad2ed54dd693dad16?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c94f6d9cbbfbca863fab309840bd690c153c95f8490c290ad2ed54dd693dad16?s=96&d=mm&r=g\",\"caption\":\"\u9038, \u79d1\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/keyi\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86java%e4%bb%a3%e7%a0%81%e8%bf%9b%e8%a1%8c%e5%8f%8d%e7%bc%96%e8%af%91-2\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u5c06Java\u4ee3\u7801\u8fdb\u884c\u53cd\u7f16\u8bd1 - Blog - Silicon Cloud","description":"\u5173\u4e8e\u5c06Java\u4ee3\u7801\u8fdb\u884c\u53cd\u7f16\u8bd1\u7684\u6280\u672f\u6587\u7ae0","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u5c06java\u4ee3\u7801\u8fdb\u884c\u53cd\u7f16\u8bd1-2\/","og_locale":"zh_CN","og_type":"article","og_title":"\u5c06Java\u4ee3\u7801\u8fdb\u884c\u53cd\u7f16\u8bd1","og_description":"\u5173\u4e8e\u5c06Java\u4ee3\u7801\u8fdb\u884c\u53cd\u7f16\u8bd1\u7684\u6280\u672f\u6587\u7ae0","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u5c06java\u4ee3\u7801\u8fdb\u884c\u53cd\u7f16\u8bd1-2\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-07-17T23:41:11+00:00","article_modified_time":"2025-08-12T14:43:03+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d0b4b37434c4406be5f00\/17-0.png"}],"author":"\u9038, \u79d1","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u9038, \u79d1","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"1 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86java%e4%bb%a3%e7%a0%81%e8%bf%9b%e8%a1%8c%e5%8f%8d%e7%bc%96%e8%af%91-2\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86java%e4%bb%a3%e7%a0%81%e8%bf%9b%e8%a1%8c%e5%8f%8d%e7%bc%96%e8%af%91-2\/","name":"\u5c06Java\u4ee3\u7801\u8fdb\u884c\u53cd\u7f16\u8bd1 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-07-17T23:41:11+00:00","dateModified":"2025-08-12T14:43:03+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/85c1dae56e6ea1e695c73d33c684d487"},"description":"\u5173\u4e8e\u5c06Java\u4ee3\u7801\u8fdb\u884c\u53cd\u7f16\u8bd1\u7684\u6280\u672f\u6587\u7ae0","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86java%e4%bb%a3%e7%a0%81%e8%bf%9b%e8%a1%8c%e5%8f%8d%e7%bc%96%e8%af%91-2\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86java%e4%bb%a3%e7%a0%81%e8%bf%9b%e8%a1%8c%e5%8f%8d%e7%bc%96%e8%af%91-2\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86java%e4%bb%a3%e7%a0%81%e8%bf%9b%e8%a1%8c%e5%8f%8d%e7%bc%96%e8%af%91-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u5c06Java\u4ee3\u7801\u8fdb\u884c\u53cd\u7f16\u8bd1"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/85c1dae56e6ea1e695c73d33c684d487","name":"\u9038, \u79d1","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c94f6d9cbbfbca863fab309840bd690c153c95f8490c290ad2ed54dd693dad16?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c94f6d9cbbfbca863fab309840bd690c153c95f8490c290ad2ed54dd693dad16?s=96&d=mm&r=g","caption":"\u9038, \u79d1"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/keyi\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86java%e4%bb%a3%e7%a0%81%e8%bf%9b%e8%a1%8c%e5%8f%8d%e7%bc%96%e8%af%91-2\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/31180","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=31180"}],"version-history":[{"count":3,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/31180\/revisions"}],"predecessor-version":[{"id":111884,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/31180\/revisions\/111884"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=31180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=31180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=31180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}