マニフェストでメインクラスが指定されていないjarファイルがあります。だから私はここで与えられた答えに従いました:
マニフェストファイルのメインクラスではないJarからクラスを実行する方法
このクラスからmainを実行しようとしているようです。ただし、このjarファイルから他のクラスをインポートすると、何らかの理由で壊れているように見えます。
これが私の問題の最小化されたバージョンです:
jar tf test.jar
与える:
META-INF/
META-INF/MANIFEST.MF
ClassIWantToRun.class
something/
something/something/
something/something/something/ClassA.class
jd-guiで表示されるClassIWantToRun.classのソースは次のようです。
import something.something.something.ClassA;
public class ClassIWantToRun
{
public static void main(String[] args)
{
int x = ClassA.comeMethod();
}
}
これを実行する:
java -cp test.jar ClassIWantToRun
私に例外を与えます:
Exception in thread "main" java.lang.NoClassDefFoundError: com/ibm/OS4690/FlexosException
at ClassIWantToRun.main(ClassIWantToRun.java:7)
Caused by: java.lang.ClassNotFoundException: com.ibm.OS4690.FlexosException
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
... 1 more
私はJavaの基本しか知りませんが、次の行でもClassAが見つからないようです:importsomething.something.something.ClassAどうすればこれを実行できますか?