سؤال

أحاول بناء جنو ClassPath 0.98 و JAMVM 1.5.2.
بعد Jamvm Readme، قمت بتكوين؛ صنع؛ اجعل التثبيت "على Jamvm، وقد عملت.

ثم أضفت Jamvm و Sun Javac إلى الطريق.
ثم مع gnu classpath فعلت هذا:

./configure --enable-jni --disable-gtk-peer --disable-gconf-peer --disable-plugin

حصلت على هذا الخطأ:

فشل Javac (انظر config.log)

على ال config.log, ، أرى أن Javac لا يمكن أن تجد vmstackwalker (وهو jamvm الخاص) أضفت دروس Jamvm إلى ClassPath، ثم حصلت على هذا الخطأ:

فشل Java VM Jamvm (انظر config.log)

على ال config.log, ، أرى أن jamvm لا يمكن العثور عليها java.lang.Class.

ماذا دهاك؟!

هل كانت مفيدة؟

نصائح أخرى

خطوات لتجميع GNU ClassPath عن Ubuntu12.04:https://groups.google.com/forum/#!topic/jrouby-gsoc/-fnknp7zxbi.

خطوات لتجميع jamvm for ubuntu 12.04:https://groups.google.com/forum/#!topic/jrouby-gsoc/uj6rlvvhr-0.

جرب ECJ، ClassPath يحتاج إلى مترجم Java، ويبدو أن Sun SDK ليس جيدا هنا

Mac OS X 10.11 مغامرات:

jamvm

بنيت مع make clean && CFLAGS="-m32" ./configure.

جنو classpath.

استغرق أكثر قليلا:

# If you already made an attempt
make clean

## If you don't --disable-tools. I didn't have antlr, so I downloaded it.
#curl -O http://www.antlr.org/download/antlr-4.5.1-complete.jar

./configure --disable-gtk-peer --disable-gconf-peer \
    --disable-tools # for tools: --with-antlr-jar=antlr-4.5.1-complete.jar

اذا أنت make الآن، فشل تجميع معjava_io_VMConsole.c:80:19: error: use of undeclared identifier 'IUCLC'. وبعد انتهى بي الأمر googling ما هو هذا الرمز - إنها Octal 01000، وأضافها الحق في المصدر:

vim ./native/jni/java-io/java_io_VMConsole.c
# add this line in the beginning of the file: #define IUCLC   0001000

بعد ذلك، يحتفظ. javac لا يجري GCJ. يبدو وكأنه علة قديمة من جنو Classpath، لقد وجدت تذرف عن مشاكل مماثلة. كما ترى أدناه، ./configure مكسورة ولن تعمل مع أي javac غير ذلك gcj.

انتهى بي الأمر فقط التحرير ./configure:

  • في البداية، أضفت خطا export JAVAC=$(which javac)
  • أنا استبدال المهمة الشرطية مع JAVAC_IS_GCJ=no

حاليا، ./configure يجب أن تمر، ولكن make متعود.

أنا خضم كل Makefiles الذي - التي ./configure ولدت ل -fsource=, ، ثم عما علقت خارج الخطوط مع -fsource (إنها علامة خاصة من GCJ) إذا كان هناك خطوط بديلة مع -source حجة، أو استبدالها فقط fsource مع source.

الخطوة الأخيرة، كان علي تحرير المستوى الأعلى Makefile وحذف $(EXAMPLESDIR) من SUBDIRS = ... خط - لم يترجم مع خطأ:

./gnu/classpath/examples/CORBA/NamingService/Demo.java:99: error: 
    package gnu.classpath.tools.tnameserv does not exist
      gnu.classpath.tools.tnameserv.Main.main(args);"

بنيت!

حصلت على أخطاء تديرها، ولكن هذه قصة مختلفة تماما...

$ DYLD_FALLBACK_LIBRARY_PATH=/usr/local/classpath/lib/classpath \
  /usr/local/jamvm/bin/jamvm -verbose:class -verbose:jni Test
...
Failed to open library /usr/local/classpath/lib/classpath/libjavanio:
dlopen(/usr/local/classpath/lib/classpath/libjavanio.so, 
1): image not found]
...
Exception occurred while printing exception (java/lang/NoClassDefFoundError)...
Original exception was java/lang/UnsatisfiedLinkError

(سأقوم بتحديث الإجابة إذا تمكنت من تشغيله)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top