标签: openjdk

Java:Linux上的字体看起来很乱,但在Windows上很好

我正在编写一个将PDF文档呈现给图像的java应用程序,当我在Windows上运行它时,它运行正常.但是当我在Linux上渲染PDF时,标准字体看起来有点乱,就像在某些字符的右侧会丢失一些像素.

我只是在安装了OpenJDK 6的Ubuntu 9.04上进行了测试,但我很确定我之前在Linux上遇到过类似的问题.我还试图用其他Java PDF应用程序打开PDF,比如SwingLabs PDFRenderer和IcePDF Demo Applet,他们遇到了同样的问题.在Windows上,它们都可以很好地渲染文档.我还使用默认的PDF查看器evince在同一台Ubuntu机器上打开文档.Evince渲染文档没有字体问题,所以我很确定这是一个普遍的Java + Linux问题.

用于比较:
此图像在Windows上呈现.
此图像在Linux上呈现.我用红色圆环标记了一些乱码.
这个也在Linux上呈现.看起来只有标准字体会受到影响.

任何帮助表示赞赏.

java linux pdf openjdk

4
推荐指数
1
解决办法
9730
查看次数

Ant失败:线程"main"中的异常java.lang.NoClassDefFoundError org/apache/tools/ant/launch/Launcher

我正在使用Fedora 17.我正在尝试使用与Java 7不兼容的ant构建文件编译项目.所以我决定安装OpenJDK 6.不幸的是,JDK 6从yum存储库中删除了,我认为它将是易于手动安装.我了解到没有JAVA_HOME变量,而是使用替代系统.所以我下载了OpenJDK二进制文件(如果重要的话,从OSG下载)并使用alternatives --install命令安装了java&javac和javaws .检查java --versionjavac --version证明它是成功的.但奇怪的是,蚂蚁不再工作了!当我输入时,ant --execdebug我收到此消息:

exec "/usr/lib/jvm/openjdk-6.0.24/bin/java" -classpath "/usr/bin/build-classpath: 
error: JVM_LIBDIR /usr/lib/jvm-exports/openjdk-6.0.24 does not exist or is not a 
directory:/usr/bin/build-classpath: error: JVM_LIBDIR /usr/lib/jvm-exports/openjdk-6.0.24 
does not exist or is not a directory:/usr/lib/jvm/openjdk-6.0.24/lib/tools.jar"
-Dant.home="/usr/share/ant" -Dant.library.dir="/usr/share/ant/lib" 
org.apache.tools.ant.launch.Launcher -cp ""
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/tools/ant/launch/Launcher
Caused by: java.lang.ClassNotFoundException: org.apache.tools.ant.launch.Launcher
    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)
Could not find the main class: org.apache.tools.ant.launch.Launcher. Program …
Run Code Online (Sandbox Code Playgroud)

java linux ant openjdk fedora

4
推荐指数
1
解决办法
1万
查看次数

从Java检查/获取JAVA_HOME变量

在Java程序中,我如何读取JAVA_HOME变量(以确保它设置正确)?同样,我怎样才能获得bin文件夹的路径?也就是说,通常在Windows中设置的路径:

path %path%;%JAVA_HOME%\bin

注意:我正在使用Alexkasko构建的OpenJDK .

java openjdk java-home

4
推荐指数
2
解决办法
1万
查看次数

java.io.UnsupportedEncodingException:cp932?

什么类型的内容会导致此异常?

Caused by: java.io.UnsupportedEncodingException: cp932
        at sun.nio.cs.StreamDecoder.forInputStreamReader(StreamDecoder.java:71)
        at java.io.InputStreamReader.<init>(InputStreamReader.java:100)
        at com.google.code.com.sun.mail.handlers.text_plain.getContent(text_plain.java:109)
        at com.google.code.javax.activation.DataSourceDataContentHandler.getContent(DataHandler.java:803)
        at com.google.code.javax.activation.DataHandler.getContent(DataHandler.java:550)
        at com.google.code.javax.mail.internet.MimeBodyPart.getContent(MimeBodyPart.java:639)
Run Code Online (Sandbox Code Playgroud)

为什么OpenJDK不能处理这种编码?

java openjdk encoding character-encoding mime-types

4
推荐指数
1
解决办法
3980
查看次数

JDK8构建错误langtools

我正在尝试构建JDK8,但出现错误:

Building OpenJDK for target 'default' in configuration 'linux-x86_64-normal-server-release'

## Starting langtools
/bin/sh: ligne 0 : cd: /home/damien/jdk8/langtools/make: Aucun fichier ou dossier de ce type
/home/damien/jdk8//make/Main.gmk:83: recipe for target 'langtools-only' failed
make: *** [langtools-only] Error 1
Run Code Online (Sandbox Code Playgroud)

是什么原因造成的?

java openjdk java-8

4
推荐指数
1
解决办法
1050
查看次数

无与伦比的类型:java和java中的Number

假设我有以下代码:

class proba {
    boolean fun(Number n) {
        return n == null || 0 == n;
    }
}
Run Code Online (Sandbox Code Playgroud)

这使用openjdk 7(debian wheezy)编译没有问题,但是在使用openjdk 8时无法编译,出现以下错误(即使使用-source 7):

proba.java:3: error: incomparable types: int and Number
    return n == null || 0 == n;
                          ^
1 error
Run Code Online (Sandbox Code Playgroud)

怎么解决这个问题:

  • 这个构造是否有一个编译器选项继续在java 8中工作?
  • 我应该使用instanceof检查所有Number的子类并进行逐行比较,然后逐个进行比较吗?这看起来很难看......
  • 其他建议?

java openjdk compilation java-8

4
推荐指数
1
解决办法
1577
查看次数

OpenJDK 1.8是否支持JFR?

我不确定OpenJDK1.8是否支持JFR(Java飞行记录器)。我知道它是在OpenJDKBug论坛上提出的。

OpenJDKLinux终端上使用on 并执行以下操作:

jcmd `<pid>` JFR.start 
Run Code Online (Sandbox Code Playgroud)

退货

java.lang.IllegalArgumentException:未知的诊断命令

java performance openjdk profiling

4
推荐指数
3
解决办法
4567
查看次数

如何从jdk覆盖类?

我正在尝试从open jdk更改一些类,所以我创建了与open jdk类相同的包结构,并且我正在使用netbeans更改类.当我正在构建项目时,如果覆盖的类中出现错误,我会收到错误.如果成功构建我的项目,似乎应用程序不会考虑来自我的类​​的更改,而是使用开放的jdk类.知道如何使用我的课程而不是openjdk的课程?

例:

如果我在我的项目中创建类sun.net.www.protocol.https.HttpsURLConnectionImpl并在其中进行一些更改,我构建项目,但是当我运行应用程序时,我的更改不会出现,就像openjdk中的原始类一样使用,而不是我的班级.

java openjdk bootstrapping classpath

3
推荐指数
1
解决办法
2998
查看次数

为什么Openjdk1.8的源代码中没有java.nio.ByteBuffer?

最近我正在阅读OpenJDK1.8的源代码,并对源代码有疑问.问题如下.有人可以帮忙吗?

字节缓冲区类存在包下面的java.nio在甲骨文Java1.8,但我发现存在没有这样的类同一个包OpenJDK1.8的.我从这里下载了OpenJDK1.8的源代码.

java openjdk nio

3
推荐指数
1
解决办法
502
查看次数

在前一次反射之后,设置静态最终字段的Java反射失败

在Java中,事实证明,字段访问器被缓存,并且使用访问器具有副作用.例如:

class A {
    private static final int FOO = 5;
}

Field f = A.class.getDeclaredField("FOO");
f.setAccessible(true);
f.getInt(null); // succeeds

Field mf = Field.class.getDeclaredField("modifiers" );
mf.setAccessible(true);

f = A.class.getDeclaredField("FOO");
f.setAccessible(true);
mf.setInt(f, f.getModifiers() & ~Modifier.FINAL);
f.setInt(null, 6); // fails
Run Code Online (Sandbox Code Playgroud)

class A {
    private static final int FOO = 5;
}

Field mf = Field.class.getDeclaredField("modifiers" );
mf.setAccessible(true);

f = A.class.getDeclaredField("FOO");
f.setAccessible(true);
mf.setInt(f, f.getModifiers() & ~Modifier.FINAL);
f.setInt(null, 6); // succeeds
Run Code Online (Sandbox Code Playgroud)

这是失败的堆栈跟踪的相关位:

java.lang.IllegalAccessException: Can not set static final int field A.FOO to (int)6 …
Run Code Online (Sandbox Code Playgroud)

java reflection openjdk java-8

3
推荐指数
1
解决办法
1363
查看次数