любая помощь приветствуется.
Проблема: Ubuntu 11.10 не очень хорошо играет с Java JOGL
Краткое изложение того, что было установлено:
- JDK ok
- Переменные окружения ok
- JOGL Банки и lib ok
- Тестовый файл используется в порядке
- Маловероятно, чтоEBKAC
- права доступа к файлам ok
- Проблема, вызванная Ubuntu 11.10, (может помочь?)
- Потенциальное решение - как установить libjogl-java_1.1.1 + dak1.orig.tar.gz?
Подробная информация о том, что установлено:
JOGL отлично работал с Ubuntu 11.04.Тестовый файл "T1.java" правильно отображал каркасный куб.После обновления Ubuntu до 11.10, при запуске в Eclipse кадр JOGL всегда зависает, не показывая никаких достоинств JOGL.Я попытался запустить Java-апплет, чтобы проверить, не нарушена ли Java, все работало нормально.Ява не сломана.Проверил мою пользовательскую библиотеку jogl в Eclipse, выглядит хорошо.Собственная библиотека установлена правильно для всех банок.Я попытался запустить файл в терминале
cd ~/workspace/projectname/src/packagename/
javac T1.java
и получил 32 ошибки с жалобами на невозможность найти пакеты.В этот момент я понял, что это НЕ проблема затмения.
Я изменил переменные окружения в / etc / environment и / etc / profile, так что запустил:
echo $ PATH
echo $ CLASSPATH
и
echo $ JAVA_HOME
все отображают ~ / librambo / jar и ~ / librambo/ lib, как они должны (плюс JDK правильно появился в PATH) (~ / librambo - это / home / rambo / librambo, rambo = username)
Я попытался поместить простой "T1.java" внутрь ~ / librambo/ jar и javac 'оттуда, та же проблема.Затем я попытался:
javac -classpath jogl.all.jar T1.java
, чтобы определить, приведет ли это к уменьшению количества ошибок, и потребовалось «чтение ошибок»jogl.all.jar; ошибка при открытии zip-файла "
После распаковки jar-файла он компилируется, но не запускается.Запустив
ldd * .so
в терминале, я обнаружил, что ему не хватает "libjawt.so", так как он жаловался на "not found".Найдя этот библиотечный файл и скопировав его в папку ~ / librambo / jar, он (ldd * .so) пожаловался на несколько других библиотечных пакетов, таких как libmawt.so, libjvm.so и т. Д. После того, как они также присоединились к ужасному пулуфайлов, собранных в ~ / librambo / jar, после ldd'ing снова жаловался, что теперь не может найти libjawt.so - но я просто «исправил» эту проблему ...
Я также "gksu nautilus" 'Я перешел к ним jar-файлы и установил их права на чтение / запись для всех пользователей и разрешил запускать их как исполняемые файлы.
Я использовал sun-java-6, поэтому в паранойе ярешил удалить другие java SDK в / usr / lib / jvm, чтобы помехи не вызывали слишком большое количество jar-файлов.Та же проблема.Установленный JDK1.7.0, очищенный ~ / librambo / jar, оставляющий только 4 jars (и T1.java), не будет компилироваться - те же 32 ошибки снова.(Я использовал "sudo update-alternatives --config java", чтобы установить версию java, я использовал java -version, чтобы проверить, какую версию я использую, чтобы не было проблемы = p)
На этот раз скачал jogl-linux-amd64.7z свежий, в нем открылся java-jogl-src.zip и скопировал содержимое в / ~ librambo / jar еще раз, чтобы посмотреть, смогу ли я просто заставить его работать в этой папке, 100 ошибок, потому что структура каталога нене совпадают.
Я много дней тралял в интернете, ища ответы, и думаю, что, возможно, наконец-то нашел его:
https://launchpad.net/ubuntu/oneiric/+source/libjogl-java/1.1.1+dak1-10
говорится вжурнал изменений "Обновление патча для установки java.library.path", что соответствует обнаруженной мной ошибке (в какой-то момент).К сожалению, когда я скачал libjogl-java_1.1.1 + dak1.orig.tar.gz и открыл его, я понял, что понятия не имею, что я должен делать с содержимым.Может кто-нибудь сказать мне, что делать, чтобы «установить» их?
В качестве альтернативы, здесь есть приложение, которое содержит файловую иерархию, / etc / setup, выходные данные 32 ошибок и список ссылок, которые я уже проверил.
////////////////////////////////////////
ПРИЛОЖЕНИЕ
////////////////////////////////////////////
ИЕРАРХИЯ ФАЙЛА
- / home / rambo / librambo / jar / gluegen-rt.jar
- / home/ rambo / librambo / jar / jogl.all.jar
- / home / rambo / librambo / jar / jogl-all-natives-linux-amd64.jar
- / home / rambo / librambo/ jar / newt.event.jar
- / home / rambo / librambo / jar / T1.java # и множество других файлов, с тех пор были удалены, поэтому вернулись 32 ошибки.
- / home / rambo / librambo / lib / libgluegen-rt.so
- / home / rambo / librambo / lib / libjogl_desktop.so
- / home / rambo/ librambo / lib / libjogl_mobile.so
- / home / rambo / librambo / lib / libnativewindow_awt.so
- / home / rambo / librambo / lib / libnativewindow_x11.so
- / home / rambo / librambo / lib / libnewt.so
ПЕРЕМЕННЫЕ ОКРУЖАЮЩЕЙ СРЕДЫ
- ПУТЬ= "/ USR / местные / SBIN: / USR / местные / бен: / USR / SBIN: / USR / бен: / SBIN: / бен: / USR / игры: ~ / .rvm / бен: / Главная / Рэмбо / librambo/jar:/home/rambo/librambo/lib:/usr/lib/jvm/jdk1.7.0/bin:/usr/lib/jvm/jdk1.7.0/lib:/usr/lib/jvm/jdk1.7.0/jre/ lib / amd64 "
- JAVA_HOME =" / usr / lib / jvm / jdk1.7.0 / bin: /usr/lib/jvm/jdk1.7.0/lib: /usr/lib/jvm/jdk1.7.0/ jre / lib / amd64: / home / rambo / librambo / jar: / home / rambo / librambo / lib "
- CLASSPATH =" / usr / lib / jvm / jdk1.7.0 / bin: / usr /lib / jvm / jdk1.7.0 / lib: /usr/lib/jvm/jdk1.7.0/jre/lib/amd64: / home / rambo / librambo / jar: / home / rambo / librambo / lib "
32 ОШИБКИ
rambo@rambo-ThinkPad-SL510:~/librambo/jar$ javac T1.java
T1.java:3: package javax.media.opengl does not exist
import javax.media.opengl.*;
^
T1.java:4: package javax.media.opengl.awt does not exist
import javax.media.opengl.awt.GLCanvas;
^
T1.java:5: package com.jogamp.opengl.util does not exist
import com.jogamp.opengl.util.*;
^
T1.java:6: package javax.media.opengl.glu does not exist
import javax.media.opengl.glu.GLU;
^
T1.java:7: package com.jogamp.opengl.util.gl2 does not exist
import com.jogamp.opengl.util.gl2.GLUT;
^
T1.java:9: cannot find symbol
symbol: class GLEventListener
public class T1 extends Frame implements GLEventListener, ActionListener {
^
T1.java:17: cannot find symbol
symbol : class GLCanvas
location: class T1
private GLCanvas canvas;
^
T1.java:75: cannot find symbol
symbol : class GLAutoDrawable
location: class T1
public void display(GLAutoDrawable drawable) {
^
T1.java:81: cannot find symbol
symbol : class GLAutoDrawable
location: class T1
public void dispose(GLAutoDrawable drawable) {
^
T1.java:85: cannot find symbol
symbol : class GLAutoDrawable
location: class T1
public void init (GLAutoDrawable drawable) {
^
T1.java:92: cannot find symbol
symbol : class GLAutoDrawable
location: class T1
public void reshape (GLAutoDrawable drawable, int x, int y, int width, int height) {
^
T1.java:115: cannot find symbol
symbol : class GLU
location: class Scene
private GLU glu = new GLU();
^
T1.java:116: cannot find symbol
symbol : class GLUT
location: class Scene
private GLUT glut = new GLUT();
^
T1.java:133: cannot find symbol
symbol : class GL2
location: class Scene
public void render(GL2 gl) {
^
T1.java:145: cannot find symbol
symbol : class GL2
location: class Scene
private void drawAxes(GL2 gl) {
^
T1.java:20: cannot find symbol
symbol : variable GLProfile
location: class T1
GLProfile.initSingleton(true);
^
T1.java:29: cannot find symbol
symbol : class GLProfile
location: class T1
GLProfile glp = GLProfile.getDefault();
^
T1.java:29: cannot find symbol
symbol : variable GLProfile
location: class T1
GLProfile glp = GLProfile.getDefault();
^
T1.java:30: cannot find symbol
symbol : class GLCapabilities
location: class T1
GLCapabilities caps = new GLCapabilities(glp);
^
T1.java:30: cannot find symbol
symbol : class GLCapabilities
location: class T1
GLCapabilities caps = new GLCapabilities(glp);
^
T1.java:31: cannot find symbol
symbol : class GLCanvas
location: class T1
canvas = new GLCanvas(caps);
^
T1.java:56: cannot find symbol
symbol : class FPSAnimator
location: class T1
FPSAnimator animator = new FPSAnimator(canvas, 60);
^
T1.java:56: cannot find symbol
symbol : class FPSAnimator
location: class T1
FPSAnimator animator = new FPSAnimator(canvas, 60);
^
T1.java:76: cannot find symbol
symbol : class GL2
location: class T1
GL2 gl = drawable.getGL().getGL2();
^
T1.java:86: cannot find symbol
symbol : class GL2
location: class T1
GL2 gl = drawable.getGL().getGL2();
^
T1.java:93: cannot find symbol
symbol : class GL2
location: class T1
GL2 gl = drawable.getGL().getGL2();
^
T1.java:99: cannot find symbol
symbol : variable GL2
location: class T1
gl.glMatrixMode(GL2.GL_PROJECTION);
^
T1.java:108: cannot find symbol
symbol : variable GL2
location: class T1
gl.glMatrixMode(GL2.GL_MODELVIEW);
^
T1.java:115: cannot find symbol
symbol : class GLU
location: class Scene
private GLU glu = new GLU();
^
T1.java:116: cannot find symbol
symbol : class GLUT
location: class Scene
private GLUT glut = new GLUT();
^
T1.java:134: cannot find symbol
symbol : variable GL2
location: class Scene
gl.glClear(GL2.GL_COLOR_BUFFER_BIT);
^
T1.java:148: cannot find symbol
symbol : variable GL2
location: class Scene
gl.glBegin(GL2.GL_LINES);
^
32 errors
ССЫЛКИ
(Сокращенный список)
////////////////////////////////////////////
ОБНОВЛЕНИЯ
////////////////////////////////////////
ДЕНЬ 5 обновления java jogl headache
ПРОГРЕСС !!= D
Теперь только 20 ошибок, связанных с ... Android?= S
Итак, я создал новую папку / home / rambo / libme
Я скачал:
- jogl-linux-amd64.7z 16-Sep-201113:50 7,0M
- gluegen-linux-amd64.7z 16 сентября 2011 г. 04:53 735K
из:
http://jogamp.org/deployment/jogamp-current/archive/jogamp-linux-amd64/
На этот раз я распаковал файлы 7zip и увидел в каждой папке src zip.Я скопировал содержимое обоих файлов в libme, перезаписей не было - они имеют схожую структуру папок.
Затем я изменил переменные окружения, чтобы они указывали на libme.Затем я переместил T1.java в libme.Javac из T1 в libme подал следующую жалобу:
rambo@rambo-ThinkPad-SL510:~/libme$ javac T1.java
/home/rambo/libme/jogamp/common/os/android/PackageInfoUtil.java:30: package android.content does not exist
import android.content.*;
^
/home/rambo/libme/jogamp/common/os/android/PackageInfoUtil.java:31: package android.content.pm does not exist
import android.content.pm.*;
^
/home/rambo/libme/jogamp/common/os/android/PackageInfoUtil.java:32: package android.util does not exist
import android.util.Log;
^
/home/rambo/libme/jogamp/common/os/android/PackageInfoUtil.java:37: cannot find symbol
symbol : class PackageInfo
location: class jogamp.common.os.android.PackageInfoUtil
public static final PackageInfo getPackageInfo(String packageName) {
^
/home/rambo/libme/jogamp/common/os/android/PackageInfoUtil.java:41: cannot find symbol
symbol : class Context
location: class jogamp.common.os.android.PackageInfoUtil
public static final PackageInfo getPackageInfo(Context ctx, String packageName) {
^
/home/rambo/libme/jogamp/common/os/android/PackageInfoUtil.java:41: cannot find symbol
symbol : class PackageInfo
location: class jogamp.common.os.android.PackageInfoUtil
public static final PackageInfo getPackageInfo(Context ctx, String packageName) {
^
/home/rambo/libme/jogamp/common/os/android/StaticContext.java:30: package android.content does not exist
import android.content.*;
^
/home/rambo/libme/jogamp/common/os/android/StaticContext.java:31: package android.util does not exist
import android.util.Log;
^
/home/rambo/libme/jogamp/common/os/android/StaticContext.java:34: cannot find symbol
symbol : class Context
location: class jogamp.common.os.android.StaticContext
private static Context context = null;
^
/home/rambo/libme/jogamp/common/os/android/StaticContext.java:37: cannot find symbol
symbol : class Context
location: class jogamp.common.os.android.StaticContext
public static final synchronized void setContext(Context ctx) {
^
/home/rambo/libme/jogamp/common/os/android/StaticContext.java:41: cannot find symbol
symbol : class Context
location: class jogamp.common.os.android.StaticContext
public static final synchronized Context getContext() {
^
/home/rambo/libme/jogamp/common/os/android/PackageInfoUtil.java:44: cannot find symbol
symbol : class PackageInfo
location: class jogamp.common.os.android.PackageInfoUtil
final PackageInfo pi = ctx.getPackageManager().getPackageInfo(packageName, PackageManager.GET_META_DATA);
^
/home/rambo/libme/jogamp/common/os/android/PackageInfoUtil.java:44: cannot find symbol
symbol : variable PackageManager
location: class jogamp.common.os.android.PackageInfoUtil
final PackageInfo pi = ctx.getPackageManager().getPackageInfo(packageName, PackageManager.GET_META_DATA);
^
/home/rambo/libme/jogamp/common/os/android/PackageInfoUtil.java:45: cannot find symbol
symbol : variable Log
location: class jogamp.common.os.android.PackageInfoUtil
if(DEBUG) Log.d(MD.TAG, "getPackageInfo("+packageName+"): "+pi);
^
/home/rambo/libme/jogamp/common/os/android/PackageInfoUtil.java:47: cannot find symbol
symbol : variable Log
location: class jogamp.common.os.android.PackageInfoUtil
} catch (Exception e) { if(DEBUG) { Log.d(MD.TAG, "getPackageInfo("+packageName+")", e); } }
^
/home/rambo/libme/jogamp/common/os/android/PackageInfoUtil.java:49: cannot find symbol
symbol : variable Log
location: class jogamp.common.os.android.PackageInfoUtil
if(DEBUG) Log.d(MD.TAG, "getPackageInfo("+packageName+"): NULL");
^
/home/rambo/libme/jogamp/common/os/android/PackageInfoUtil.java:54: cannot find symbol
symbol : class PackageInfo
location: class jogamp.common.os.android.PackageInfoUtil
final PackageInfo pInfo = getPackageInfo(packageName);
^
/home/rambo/libme/jogamp/common/os/android/PackageInfoUtil.java:58: cannot find symbol
symbol : class PackageInfo
location: class jogamp.common.os.android.PackageInfoUtil
final PackageInfo pInfo = getPackageInfo(packageName);
^
/home/rambo/libme/jogamp/common/os/android/PackageInfoUtil.java:60: cannot find symbol
symbol : variable Log
location: class jogamp.common.os.android.PackageInfoUtil
if(DEBUG) Log.d(MD.TAG, "getPackageInfoVersionName("+packageName+"): "+s);
^
/home/rambo/libme/jogamp/common/os/android/StaticContext.java:38: cannot find symbol
symbol : variable Log
location: class jogamp.common.os.android.StaticContext
if(DEBUG) Log.d(MD.TAG, "setContext("+ctx+")");
^
Note: /home/rambo/libme/javax/media/opengl/awt/GLCanvas.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
20 errors
Удаление папки Android не помогло.(Если я использую только jogl src, а не gluegen, это дает 100 ошибок. Добавление источника из joal тоже ничего не дает)
тест openGL
rambo@rambo-ThinkPad-SL510:~$ /usr/lib/nux/unity_support_test -p
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: ATI Mobility Radeon HD 4500 Series
OpenGL version string: 3.3.11005 Compatibility Profile Context
Not software rendered: yes
Not blacklisted: yes
GLX fbconfig: yes
GLX texture from pixmap: yes
GL npot or rect textures: yes
GL vertex program: yes
GL fragment program: yes
GL vertex buffer object: yes
GL framebuffer object: yes
GL version is 1.4+: yes
Unity 3D supported: yes