gpt4 book ai didi

java - 如何在Ubuntu 11.10上获得JOGL的工作

转载 作者:行者123 更新时间:2023-12-02 12:25:51 27 4
gpt4 key购买 nike

任何帮助,不胜感激。
问题: Ubuntu 11.10与Java的JOGL配合不好
建立的摘要:

  • JDK OK
  • 环境变量确定
  • JOGL Jars和lib ok
  • 使用的测试文件还可以
  • 不太可能是EBKAC
  • 文件权限确定
  • 由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是否损坏,它工作正常。 Java没有坏。
    在Eclipse中检查了我的jogl用户库,看起来不错。为所有罐子正确设置了本机库。
    我尝试在终端中运行文件
        cd ~/workspace/projectname/src/packagename/
    javac T1.java
    并收到32错误,抱怨找不到软件包。至此,我意识到这不是一个月食问题。
    我在/ etc / environment和/ etc / profile中更改了环境变量,以便运行:

    回声$ PATH
    回声$ CLASSPATH



    回声$ JAVA_HOME

    全部显示〜/ librambo / jar和〜/ librambo / lib(应正确显示(加上JDK正确显示在PATH中))
    (〜/ librambo是/ home / rambo / librambo,rambo =用户名)
    我尝试将简单的“T1.java”放入〜/ librambo / jar并从那里进行javac编译,同样的问题。然后我尝试了:

    javac -classpath jogl.all.jar T1.java

    确定是否可以减少错误数量,并声称“读取jogl.all.jar时出错;打开zip文件时出错”
    解压缩jar文件后,它将编译但无法运行。跑步

    ldd * .so

    在终端中,我看到它缺少“libjawt.so”,因为它抱怨“未找到”。
    找到该库文件并将其复制到〜/ librambo / jar文件夹后,它(ldd * .so)便抱怨了其他几个库软件包,例如libmawt.so,libjvm.so等。在它们也加入了可怕的池之后的文件聚集在〜/ librambo / jar中,再次出现问题后抱怨它现在找不到libjawt.so-但我只是“解决”了这个问题...
    我还对他们的jar文件“gksu nautilus”进行了设置,并设置了它们对所有用户的读写权限,并允许它们作为可执行文件运行。
    我一直在使用sun-java-6,因此在妄想症中,我决定删除/ usr / lib / jvm中的其​​他Java SDK,以防止由于太多的jar文件而造成混淆。同样的问题。安装了JDK1.7.0,清除了〜/ librambo / jar,只剩下了4个jar(和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 / environment设置,32个错误输出以及我已经检查过的引用列表。
    //////////////////////////////////////
    APPENDIX
    //////////////////////////////////////
    文件层次结构
  • / home / rambo / librambo / jar / gelengen-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

  • 环境变量
  • PATH =“/ usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:/ sbin:/ bin:/ usr / games:〜/ .rvm / bin:/ home / rambo /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 /朗博/ 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 /朗博/ 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

    参考资料
    (删节清单)
  • http://www.leolol.com/drupal/game-programming
  • Ant build classpath jar generates "error in opening zip file"
  • http://forum.worldwindcentral.com/archive/index.php?t-10146.html
  • (Jogamp Wiki页面,用于在Ubuntu 64位上安装Jogamp)
  • JOGL does not work after reinstalling ubuntu
  • 我大学的图形讲师
  • T ** C *******,(匿名)Vi使用TDDaholic
  • http://www.google.com

  • //////////////////////////////////////
    更新
    //////////////////////////////////////
    Java jogl头痛的第5天更新
    进展!! = D
    现在只有20个与... Android相关的错误? = S
    所以我开始了一个新文件夹/ home / rambo / libme
    我下载了:
  • jogl-linux-amd64.7z 2011年9月16日13:50 7.0M
  • gumgen-linux-amd64.7z 2011年9月16日04:53 735K

  • 从:
    http://jogamp.org/deployment/jogamp-current/archive/jogamp-linux-amd64/
    这次,我解压缩了7zip文件,并在每个文件中看到了一个src zip文件夹。我将两者的内容都复制到libme中,没有覆盖-它们共享相似的文件夹结构。
    然后,我将环境变量更改为指向libme。然后,我将T1.java移到了libme中。 libme中的T1的Javac提出以下投诉:
        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而不是胶水,它会产生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

    最佳答案

    我修好了它! = D

    您是否遇到同样的问题?

    症状

  • 遵循了与以下类似的出色指南:https://sites.google.com/site/justinscsstuff/jogl-tutorial-1http://www.leolol.com/drupal/game-programming
  • Eclipse将打开一个窗口,但不显示任何openGL,并且该窗口将挂起
  • CLASSPATH,JAVA_HOME和PATH变量都可以。
  • 没有意义,应该可以工作

  • 治愈

    抓着你的马裤,你将度过一个疯狂的夜晚。

    @ _ @“JOGL帝国的一千个库降临在您身上。我们的JUnit测试将遮挡阳光”

    ¬_¬“然后我们将在阴影下编码”

    Terminal中输入以下内容
    sudo apt-get install gcc libgl1-mesa-dev libglu1-mesa-dev xorg-dev libice-dev libsm-dev libx11-dev libxext-dev libxxf86vm-dev libxinerama-dev libxrandr-dev libxrender-dev
    sudo add-apt-repository ppa:eclipse-team/debian-package
    sudo apt-get update
    sudo apt-get install ant

    假定您使用的是“git”,否则请使用它(谷歌搜索,安装)。本指南是针对Java 1.7(UPDATE:和Java 1.6)编写的,您可以通过输入以下内容来检查Java版本:
    java -version

    进入终端。要更改默认的Java版本,请输入
    sudo update-alternatives --config java

    进入终端-它显示您已安装的Java版本供您选择。方便的指南:
  • http://www.cyberciti.biz/faq/howto-ubuntu-linux-install-configure-jdk-jre/
  • https://help.ubuntu.com/community/Java

  • 现在是慢跑时间。创建一个文件夹以将源代码轻推到计算机0_0上。无需特别说明,我将文件夹命名为“hera”并将其放入主目录。
    cd ~
    mkdir hera
    cd hera/
    git clone git://jogamp.org/srv/scm/gluegen.git gluegen
    git clone git://jogamp.org/srv/scm/jogl.git jogl

    然后转到 〜/ hera / jogl / doc / HowToBuild.html ,它会告诉您下一步,尽管请阅读以下“如何生成注释”:

    如何建立笔记

    这些是JOGL指南的指南,您只需将GIT克隆到 〜/ hera / jogl / doc / HowToBuild.html 即可。

    高级用户:重要的是要注意,在这种情况下,更改环境变量时“source / etc / environment”不足。简单来说,这意味着您需要执行下一个命令来更改PATH(和其他变量),然后注销,然后再次登录到Ubuntu。
    gksu gedit /etc/environment

    该命令将打开您的环境变量。早产的时间。删除所有类似Java的痕迹,包括SDK的路径。需要删除CLASSPATH和JAVA_HOME(将它们复制到其他位置,以便稍后再放回它们)。您应该具有以下内容:
    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:~/.rvm/bin

    注意那里没有java。保存并关闭。注销,登录。然后检查它是否可以使用:
    echo $PATH

    如果您在注销->登录后仍然看到任何Java优势,请执行“gksu gedit / etc / profile”,然后查看是否有任何“PATH”语句在其中徘徊,它们引用了PATH或CLASSPATH或JAVA_HOME。如果没有,...在家里检查“.bashrc”吗?

    高级用户:下一段遍历Jogl。您用于构建Jogl的Java版本意义重大。它是您的代码必须使用的Java版本。如果要在Java 1.6和Java 1.7中开发项目(使用Jogl),则需要使用Jogl的单独版本的单独文件夹-例如,使用Java 1.7生成的“〜/ hera /”,“〜/ zeus /”使用Java 1.6构建。

    假设一切正常,并且没有显示Java路径,请继续HowToBuild.html。我没有更改可选的构建属性。做指南所指的“蚂蚁”建造物。如果执行JUnit测试,则大约需要30分钟,并且似乎冻结了几次,并且没有使用任何CPU。可以,请稍等片刻。

    如果测试不起作用,则可能是因为您不幸的时机意味着您已经破坏了构建。您可以等待并从hera进行git pull,或者以SHA1的方式返回一些PUSH。

    最后

    假设您正在使用Eclipse。删除您创建的旧jogl用户库(如果已创建)。我还建议开始一个新项目。像往常一样遵循指南(例如 https://sites.google.com/site/justinscsstuff/jogl-tutorial-1http://www.leolol.com/drupal/game-programming),可以在〜/ hera / jogl / build / jar /中找到以下jar(如果您使用的是Java 1.6,则必须在〜/ hera / jogl中进行升级) / builf / jar / atomic)
  • jogl.all.jar
  • jogl-all-natives-amd64.jar
  • newt.event.jar

  • 它们的本机库位置在“〜/ hera / jogl / build / lib”中。然后在“〜/ hera / gluegen / build”中找到“gluegen-rt.jar”,我将该库设置为与其他3个jar相同的库...我怀疑存在“libgluegen-rt.so” “可能是在弄污事情,似乎并不需要它……

    现在您的程序应该运行了!

    此时,您可以将PATH,CLASSPATH和JAVA_HOME变量放回到/ etc / environment中(它们是为ant除去的)。

    关于java - 如何在Ubuntu 11.10上获得JOGL的工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7810504/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com