包装黑莓OAuth应用程序抛出错误

我正在创build一个将链接发布到Twitter上的应用程序。 下面的代码拒绝为我打包,抛出以下错误:

错误:无法运行程序“jar”:CreateProcess error = 2,系统找不到指定的文件

这里是代码:

public class ShowAuthBrowser extends MainScreen implements OAuthDialogListener { private final String CONSUMER_KEY = "<Consumer>"; private final String CONSUMER_SECRET = "<Secret>"; private LabelField _labelStutus; private OAuthDialogWrapper pageWrapper = null; public StoreToken _tokenValue; public BrowserField b = new BrowserField(); Manager _authManager; Manager _pinManager; ButtonField authButton; TextField authPin; public ShowAuthBrowser() { _authManager = new VerticalFieldManager(NO_VERTICAL_SCROLL | NO_VERTICAL_SCROLLBAR); _pinManager = new HorizontalFieldManager(NO_VERTICAL_SCROLL | NO_VERTICAL_SCROLLBAR); authButton = new ButtonField("OK"); authPin = new TextField(Field.EDITABLE); _authManager.add(_labelStutus ); _authManager.add(b); _pinManager.add(authButton); _pinManager.add(authPin); pageWrapper = new BrowserFieldOAuthDialogWrapper(b,CONSUMER_KEY, CONSUMER_SECRET,null,this); pageWrapper.setOAuthListener(this); add(_pinManager); add(_authManager); authButton.setChangeListener( new FieldChangeListener( ) { public void fieldChanged( Field field, int context ) { if( field == authButton ) { doAuth(authPin.getText()); } } } ); } public void doAuth( String pin ) { try { if ( pin == null ) { pageWrapper.login(); } else { this.deleteAll(); add(b); pageWrapper.login( pin ); } } catch ( Exception e ) { final String message = "Error logging into Twitter: " + e.getMessage(); Dialog.alert( message ); } } public void onAccessDenied(String response ) { updateScreenLog( "Access denied! -> " + response ); } public void onAuthorize(final Token token) { final Token myToken = token; _tokenValue = StoreToken.fetch(); _tokenValue.token = myToken.getToken(); _tokenValue.secret = myToken.getSecret(); _tokenValue.userId = myToken.getUserId(); _tokenValue.username = myToken.getUsername(); _tokenValue.save(); UiApplication.getUiApplication().invokeLater( new Runnable() { public void run() { deleteAll(); Credential c = new Credential(CONSUMER_KEY, CONSUMER_SECRET, myToken); PostTweet tw = new PostTweet(); String message="Testing BB App"; boolean done=false; done=tw.doTweet(message, c); if(done == true) { Dialog.alert( "Tweet succusfully..." ); close(); } } }); } public void onFail(String arg0, String arg1) { updateScreenLog("Error authenticating user! -> " + arg0 + ", " + arg1); } private void updateScreenLog( final String message ) { UiApplication.getUiApplication().invokeLater( new Runnable() { public void run() { _labelStutus.setText( message ); } }); } } 

奇怪的是,如果我删除下面的行,它包装得很好:

 authButton.setChangeListener( new FieldChangeListener( ) { public void fieldChanged( Field field, int context ) { if( field == authButton ) { doAuth(authPin.getText()); } } } ); 

任何帮助将不胜感激,因为我真的需要连接到此屏幕的字段监听器。

authButton.setChangeListener(null)这样的代码,它确实打包成功,但是我确实需要使用FieldChangeListener来做一些事情。

确保你的java binpath是在环境variables中设置的。

http://docs.oracle.com/javase/tutorial/essential/environment/paths.html

并看看在以下网站的最后3个职位:

http://supportforums.blackberry.com/t5/Java-Development/IO-Error-Cannot-run-program-quot-jar-quot-CreateProcess-error-2/td-p/522638

还要确保计算机上安装了Java®软件开发工具包(Java SDK / JDK),并使用了正确版本的Java SDK。

http://supportforums.blackberry.com/t5/Java-Development/IO-Error-CreateProcess/ta-p/445949

正如Scott Boettger在下面的评论中提到的,这篇文章也可能有帮助: http : //supportforums.blackberry.com/t5/Java-Development/why-cause-more-then-100-compiled-classes-packaging-IO-误差/ MP / 520282