2012-02-03 22 views
0

私はYAJSWを使用して開始しようとしているJavaアプリケーションがあります。これは、単純な「Hello World」アプリケーションであり、私はここの指示に従ってください:http://yajsw.sourceforge.net/#mozTocId527639パブリック静的クラスのYAJSWエラー

私は次のことを行っている:

  • は、実行可能なJARファイルとして日食からの私のプロジェクトを輸出しました。

  • 私はgenconfigを走った - 私は

  • をのwrapper.confをedittedとjarファイルの場所を追加しました何の問題

  • はrunConsole.batを走っていないし、私はこのエラーを取得する:

    java.lang.IllegalAccessException: class org.rzo.yajsw.app.WrapperJVMMain can not access a member of class xxxx with modifiers "public static"

それが参照するクラスはメインクラスであり、静的でなければなりません。ハマった!アドバイスありがとうございます。

+0

あなたは私はそれがどのように動作するか、それを確認したいサービスとして実行され、あなたのハローワールドコードをアップロードしてくださいすることができます...またはあなたがyajswについての私の質問に答えることができます...おかげ – Wearybands

+0

これと別の解決策を見つけました。運が良かった。 – Patrick

答えて

2

私は同じ問題、(Javaの1.6.0_30-b12と、ウィンXPプロV 2002 SP3にyajsw安定-11.0を実行している)持っていた:私の場合は、静的なパブリックメインを含むクラスを

INFO|wrapper|Service socket-proxy|12-04-11 11:48:32|init 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:32|ahessian jmx service bound to port 15002 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:32|set state IDLE->STARTING 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:32|Win service: before service init 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:32|starting Process 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:32|Controller State: UNKNOWN -> WAITING 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:32|+ ServiceMain callback 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:32|reporting status 0 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:32|reporting status 0 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:32|onstart 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:32|working dir C:\dev\workspaceTax\socket-proxy 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:32|create script: scripts/trayMessage.gv 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:33|found script scripts/trayMessage.gv 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:33|spawning wrapped process 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:33|started process with pid 3720 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:33|waiting for termination of process 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:33|set state STARTING->RUNNING 
INFO|3720/0|Service socket-proxy|12-04-11 11:48:33|[INFO] DefaultFileReplicator - Using "C:\WINDOWS\TEMP\vfs_cache" as temporary files store. 
INFO|3720/0|Service socket-proxy|12-04-11 11:48:33|java.lang.IllegalAccessException: Class org.rzo.yajsw.app.WrapperJVMMain can not access a member of class [...].socketproxy.Proxy with modifiers "public static" 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:33|Trigger found: Exception 
INFO|3720/0|Service socket-proxy|12-04-11 11:48:33| at sun.reflect.Reflection.ensureMemberAccess(Unknown Source) 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:33|start script scripts/trayMessage.gv 
INFO|3720/0|Service socket-proxy|12-04-11 11:48:33| at java.lang.reflect.Method.invoke(Unknown Source) 
INFO|3720/0|Service socket-proxy|12-04-11 11:48:33| at org.rzo.yajsw.app.WrapperJVMMain.executeMain(WrapperJVMMain.java:53) 
INFO|3720/0|Service socket-proxy|12-04-11 11:48:33| at org.rzo.yajsw.app.WrapperJVMMain.main(WrapperJVMMain.java:36) 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:33|end script scripts/trayMessage.gv 
INFO|3720/0|Service socket-proxy|12-04-11 11:48:34|process terminated 
INFO|3720/0|Service socket-proxy|12-04-11 11:48:34|Controller State: WAITING -> PROCESS_KILLED 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:34|restart process due to default exit code rule 

をメソッドがパブリックであると宣言されていないため、パッケージプライベートでありデフォルトです。パッケージプライベートクラスの

class Proxy { 
... 
    public static void main(String args[]) throws IOException{ 
     ... 
     } 
} 

公開の方法が異なるパッケージに属するクラスによって表示されませんので、これは私の場合は問題でした。例えばhttps://stackoverflow.com/questions/5260467/public-methods-in-package-private-classesを参照してください。

public class Proxy { 
... 
    public static void main(String args[]) throws IOException{ 
     ... 
     } 
} 

上記のように公開クラスを宣言すると、私の問題が解決しました。たぶんあなたは問題全体についていくつかの詳細を投稿し、誰かが解決策を投稿するかもしれません。私が使用してからの移動した よろしく -GF

関連する問題