Ensemble.Tofino运行报错Unexpected java bridge exception的解决2011-01-05 博客园 混世者作为Visual Studio插件的Flex开发工具,Ensemble公司的Tofino确实很吸引人,包含编译环境的安装文件总共才122M,比起Flex Builder要不少。而且,对于熟悉了VS开发环境的.Net程序员,用这样的插件来做Flex开发方便了很多。从官网下载安装文件,选择122M的包含开发编译环境的安装包下载。关闭Visual Studio,安装成功后开启Visual Studio,正常情况下Flex项目会出现在新建项目的页面上。新建一个Flex工程,如果你机器的java环境配置不正确,就会跟我一样,出现 Ensemble.Tofino.Plugin.Support.FlexJavaBridgeException: Unexpected java bridge exception的错误提示(虽然此时没有编译运行工程,但是会检查出来)。如果编译运行项目,则会报如下详细错误:unexpected exception: Ensemble.Tofino.Plugin.Support.FlexJavaBridgeException: Unexpected java bridge exception. Tofino version: 2.2010.1.7 Microsoft? Visual Studio? 2008 9.0.30729.1 built by: SP Using JVM: C:Program FilesJavaj2re1.4.2_19/bin/client/jvm.dll OS: Windows XP (Microsoft Windows NT 5.1.2600 Service Pack 3) ---> System.Runtime.InteropServices.SEHException: 外部组件发生异常。 在 Ensemble.Tofino.Plugin.Support.FlexJavaBridge.EnsureInitialized() 在 Ensemble.Tofino.Plugin.Support.FlexJavaBridge.InvokedUnLockedAction(JavaAction action) --- 内部异常堆栈跟踪的结尾 --- 在 Ensemble.Tofino.Plugin.Support.FlexJavaBridge.InvokedUnLockedAction(JavaAction action) 在 Ensemble.Tofino.Plugin.Support.FlexJavaBridge.InvokedLockedAction(JavaAction action) 在 Ensemble.Tofino.Plugin.Support.FlexJavaBridge.StartBuild(String projectDir, LogCallback logCallback, ProgressCallback progressCallback) 在 Ensemble.Tofino.Plugin.Compiler.FlexBuilder.Build() 在 Ensemble.Tofino.Plugin.Project.FlexProject.InvokeMsBuild(String target) -1 0 FlexApplication1从上面的错误信息可以看出,是Tofino的dll在配置java环境时出错,找到这一行:Using JVM: C:Program FilesJavaj2re1.4.2_19/bin/client/jvm.dll取到的是jre的路径,那么应该是jre中bin路径错误, 需要java.dll所在的目录,而这里缺少bin目录。那Tofino是怎么取到java环境的路径呢?我么来看下Tofino的安装目录。在Tofino安装目录下的sdks3.2.0in目录中,有个jvm.config文件,打开找到如下内容:# # VM configuration # # Where to find JVM, if {java.home}/jre exists then that JVM is used # if not then it must be the path to the JRE itself # # If no java.home is specified a VM is located by looking in these places in this # order: # # 1) JAVA_HOME environment variables (same rules as java.home above) # 2) bin directory for java.dll (windows) or lib/<ARCH>/libjava.so (unix) # 3) ../jre # 4) registry (windows only) #