我有一個將SVG文件轉換爲swf文件的web應用程序。 爲了做到這一點,有3個步驟:1 - 通過SVG文件的文件夾中運行在Java中調用的Flex編譯器mxmlc會導致64位JVM崩潰(dcpr.dll)
for (final File file : tFiles) {
final String fileName = file.getName();
final int nbEr = flashEngine.convert(fileName);
if (nbEr > 0) {
LOG.error("Error with SVG file : " + fileName);
}
file.delete();
}
2 - 在.AS臨時文件轉換每個SVG和增加它的信息
public final int convert(final String svgName) {
// *****************
// DIVERS TREATMENTS
// *****************
final int nbError = computeSwf(svgName);
// ******************
// DIVERS TREATMENTS
// ******************
return nbError;
}
3 - 轉換日。至於成瑞士法郎感謝mxmlc編譯
private int computeSwf(final String svgName) {
final String[] argscompiler = new String[5];
argscompiler[0] = "+flexlib";
argscompiler[1] = [flex framework path : /flex/frameworks];
argscompiler[2] = [temporary .as file path];
argscompiler[3] = "-output"; // output folder path
argscompiler[4] = [output file name thanks to svgName];
flex2.tools.Compiler.mxmlc(argscompiler);
return ThreadLocalToolkit.errorCount();
}
大多數時候,一切工作正常。 但是,在某些情況下,整個JVM會在沒有警告的情況下崩潰。
我添加了周圍mxmlc編譯調用日誌:
try {
LOG.info("mxmlc compiler calling");
flex2.tools.Compiler.mxmlc(argscompiler);
LOG.info("mxmlc compilation finished");
} catch (final Throwable e) {
LOG.fatal(e, e);
}
在我的日誌,它讓我看到,對於大量的文件,彙編作品。 但是,在「mxmlc編譯器調用」行之後,JVM崩潰。
所以,問題來自flex編譯器。
一些測試後,我獲得了 「JVM崩潰報告」:
<?xml version="1.0" encoding="UTF-16"?>
<WERReportMetadata>
<OSVersionInformation>
<WindowsNTVersion>6.1</WindowsNTVersion>
<Build>7600 </Build>
<Product>(0x30): Windows 7 Professional</Product>
<Edition>Professional</Edition>
<BuildString>7600.16539.amd64fre.win7_gdr.100226-1909</BuildString>
<Revision>1</Revision>
<Flavor>Multiprocessor Free</Flavor>
<Architecture>X64</Architecture>
<LCID>1036</LCID>
</OSVersionInformation>
<ParentProcessInformation>
<ParentProcessId>2052</ParentProcessId>
<ParentProcessPath>C:\Java\jre6\bin\javaw.exe</ParentProcessPath>
<ParentProcessCmdLine>C:\Java\jre6\bin\javaw.exe -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:59809 -Dcatalina.base=C:\Workspaces\Eclipse\.metadata\.plugins\org.eclipse.wst.server.core\tmp0 -Dcatalina.home=C:\Tomcat55 -Dwtp.deploy=C:\Workspaces\Eclipse\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps -Djava.endorsed.dirs=C:\Tomcat55\common\endorsed -Xms512M -Xmx1024M -XX:MaxPermSize=256m -Dfile.encoding=UTF-8 -classpath C:\Workspaces\Eclipse\[MY PROJECT]\webcontent\WEB-INF\lib\wsdl4j-1.5.1.jar;C:\Tomcat55\bin\bootstrap.jar org.apache.catalina.startup.Bootstrap start</ParentProcessCmdLine>
</ParentProcessInformation>
<ProblemSignatures>
<EventType>APPCRASH</EventType>
<Parameter0>java.exe</Parameter0>
<Parameter1>6.0.200.2</Parameter1>
<Parameter2>4bc39549</Parameter2>
<Parameter3>dcpr.dll</Parameter3>
<Parameter4>6.0.200.2</Parameter4>
<Parameter5>4bc3ace7</Parameter5>
<Parameter6>c00000fd</Parameter6>
<Parameter7>000000000000dacc</Parameter7>
</ProblemSignatures>
<DynamicSignatures>
<Parameter1>6.1.7600.2.0.0.256.48</Parameter1>
<Parameter2>1036</Parameter2>
<Parameter22>dfc4</Parameter22>
<Parameter23>dfc49eb22582397c699a9ef43341068a</Parameter23>
<Parameter24>7fc1</Parameter24>
<Parameter25>7fc14f899de80bb4d59ec0501e30665b</Parameter25>
</DynamicSignatures>
<SystemInformation>
<MID>961D9682-D49E-4725-9224-B2748025A619</MID>
<SystemManufacturer>Dell Inc.</SystemManufacturer>
<SystemProductName>OptiPlex 780</SystemProductName>
<BIOSVersion>A03</BIOSVersion>
</SystemInformation>
</WERReportMetadata>
正如你所看到的,似乎dcpr.dll(的Sun Java DLL)崩潰。 我已經有過這樣的問題,但它已經從jdk 1.5升級到1.6了。 看來,這不是一個真正的解決方案:■
信息: Java版本:JDK 1.6.0.20 64位 Flex的版本:flex_sdk_3.5.0.12683
我不使用 「全JDK」 ,其中包含[flex] /bin/jvm.config文件。
所以,這裏是我的問題: - 我可以簡單地添加一個jvm.config文件(或另一個),以設置mxmlc編譯器? - 我必須使用32位jdk嗎? (似乎有關於flex和64位jdk的問題) - 是否有其他編譯器轉換爲swf?
謝謝。我忘了寫解決方案。我幾星期前就做了你提到的。它解決了我的問題。 – 2010-09-17 12:07:37
我們必須指出一個JDK,還是隻能使用JRE?當Web應用程序託管在Win 64位操作系統上的Tomcat 6.0.29 64位上時是否存在一些已知問題?你能否也請告訴我如何獲得堆棧跟蹤?我設置爲真正的「詳細堆棧跟蹤」,但我什麼都沒有得到。感謝 – 2010-10-13 12:38:27
我在Windows 7 64位,我不得不從jvm.config文件中刪除java.home路徑,並把它放在Windows變量JAVA_HOME和它的工作。對於我使用C:/ Program Files(x86)/ Adobe/Adobe Flash Builder 4.5/jre的路徑。我不知道爲什麼jvm.config文件不起作用... – chobo 2012-01-05 18:57:51