我知道这是一个非常常见的错误,但是我找不到任何解决方案对我有帮助。
Java 应用程序中的字体很难看
以下是两个示例(处理和 PyCharm):
正如我上面提到的,有很多解决方案,但没有一个解决了我的问题:
fontconfig-infinality如何修复字体渲染?
一些有用的(也许?)信息:
$ uname -a
Linux scriptim 4.10.10-1-ARCH #1 SMP PREEMPT Wed Apr 12 18:50:28 CEST 2017 x86_64 GNU/Linux
$ java -version
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on, -Dswing.aatext=true
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
Run Code Online (Sandbox Code Playgroud) 问题更多的是关于 bash 脚本和 java 环境,感谢那些有耐心并抽出时间回复我的人。我非常感激。
至于Java环境我开始使用sdkman。当我开始这个小脚本时,我实际上正在寻找类似的东西,我正在考虑做类似的事情。无论谁正在寻找我的问题的答案,我都建议使用该工具。如果你有自己的剧本并不重要,我强烈建议你尝试一下。
sdkman 将关心语言版本安装、侧面需求(如 maven、gradle 和 kotlin)以及环境变量。
我正在构建一个 bash 脚本来自动考虑活动 java 的版本来设置用户的 JAVA_HOME 和 PATH,但是由于某种原因 PATH 没有正确构建,它添加了空格而不是“:”,任何人都可以告诉我为什么?
下面是脚本。
谢谢!
#!/bin/bash
export JAVA_HOME=$(dirname $(dirname `readlink -f /etc/alternatives/java`))
IFS=':';
for i in $PATH;
do
JAVA1=$i/bin/java
JAVA2=$i/java
if [ -d "$i" ];
then
if [ ! -L "$JAVA1" ] && [ -x "$JAVA1" ] || [ ! -L "$JAVA2" ] && [ -x "$JAVA2" ];
then
echo "dropping path: $i";
else
NEW=$NEW:$i
fi
fi
done
PATH=$NEW:$JAVA_HOME/bin …Run Code Online (Sandbox Code Playgroud) 我需要从命令行使用 OpenSSL 执行以下 Java 代码片段:
private byte[] hmacSha256(byte[] key, byte[] payload) throws GeneralSecurityException {
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(new SecretKeySpec(key, "HmacSHA256"));
mac.update(payload);
return mac.doFinal();
}
Run Code Online (Sandbox Code Playgroud)
这些是适用于 Java 但不适用于 OpenSSL 的测试值:
KEY_BASE64="xtztqVgjD+5VHL4rVeKYm0USpDJTEy5Tjc9aK6I/oV0="
KEY_HEX="c6dceda958230fee551cbe2b55e2989b4512a43253132e538dcf5a2ba23fa15d"
PAYLOAD_BASE64="j9F8TrzCabcDoLdHUDaUuv6ea224xikwbPF1IW0OjkY="
DIGEST_HEX="c2ec711448a4f5bb851279eca0a628847254855966ad09de7e734b7df48e198a"
Run Code Online (Sandbox Code Playgroud)
我已经尝试过这个答案,但得到了不同的结果。它看起来像这样:
KEY_BASE64="xtztqVgjD+5VHL4rVeKYm0USpDJTEy5Tjc9aK6I/oV0="
KEY_HEX="c6dceda958230fee551cbe2b55e2989b4512a43253132e538dcf5a2ba23fa15d"
PAYLOAD_BASE64="j9F8TrzCabcDoLdHUDaUuv6ea224xikwbPF1IW0OjkY="
DIGEST_HEX="c2ec711448a4f5bb851279eca0a628847254855966ad09de7e734b7df48e198a"
Run Code Online (Sandbox Code Playgroud)
它确实为我提供了十六进制格式的输出,但该值与我使用相同的负载和键值运行该 Java 代码片段时得到的值不匹配。
我还可以使用另一个命令行工具,只要它在大多数 Linux 默认包管理器列表中广泛可用即可。
我有一个编译的 java 文件somefile.class,当我 cd 到正确的文件夹并执行以下操作时:java somefile它可以工作,但是当我从另一个文件夹调用它时:java folder/somefile它不起作用,它给了我 java 异常,你能帮我吗?
编辑:如果这很重要,我正在 Mac 上工作。
我已经在 RHEL5.5 中设置了 Kerberos 服务器和 OpenLDAP。我还有一台 RHEL6 机器作为客户端。我已经运行了我的 Java 程序,jaas用于从 Linux 客户端查询 OpenLDAP 服务器。
如果将客户端的密钥表复制到客户端计算机并使用以下配置选项,则可以查询 OpenLDAP 服务器:
principal=wpingli
useKeyTab=true
keyTab="/home/wpingli/ker/java/wpingli_new.keytab";
Run Code Online (Sandbox Code Playgroud)
如果提示我输入用户/密码,我也可以查询 OpenLDAP 服务器。这让我相信我的环境没问题。
但是,如果我在以下之后运行 Java 程序,则无法查询服务器kinit:
klist
[wpingli@pli java]$ klist
Ticket cache: FILE:/tmp/krb5cc_500
Default principal: wpingli@XX.COM
Valid starting Expires Service principal
10/20/11 16:18:06 10/21/11 16:18:02 krbtgt/XX.COM@XX.COM
jaas configuration
GssExampleSUN{
com.sun.security.auth.module.Krb5LoginModule required
client=true
debug=true
doNotPrompt=true
useTicketCache=true
ticketCache="/tmp/krb5cc_500";
};
Exception:
Debug is true storeKey false useTicketCache true useKeyTab false doNotPrompt true ticketCache is /tmp/krb5cc_500 isInitiator true KeyTab is …Run Code Online (Sandbox Code Playgroud) 我在我编写的 Java 程序中对 unix sort 命令进行排序。但是,由于 Java 的字符串比较的行为与排序进行的比较不同,我遇到了问题。
来自 [Java 文档][1]:
按字典顺序比较两个字符串。比较基于字符串中每个字符的 Unicode 值。
从排序手册页:
* 警告 * 环境指定的语言环境会影响排序顺序。设置 LC_ALL=C 以获取使用本机字节值的传统排序顺序。
所以我的猜测是需要使用 LC_ALL=C 进行排序。但是我一直认为这意味着基于 ASCII 值排序,这意味着谁知道 unicode 会发生什么。
我们的 Linux 服务器响应非常缓慢。top没有显示任何过多的 CPU 使用率。我注意到即使有大约 5GB 的空闲内存,系统也正在使用所有交换空间,而没有剩余的空闲交换空间。这可能是系统运行缓慢的原因吗?除了减少进程数之外还有什么解决办法吗?
其次,即使有可用内存,为什么 Linux 已经交换了?我认为只有在没有实际内存时才使用交换。
free -m
total used free shared buffers cached
Mem: 32045 26218 5826 0 127 123
-/+ buffers/cache: 25967 6077
Swap: 16387 16387 0
Run Code Online (Sandbox Code Playgroud)
更新:
-Xms8000m -Xmx8000m乍一看似乎很疯狂,但可能有人有这样做的理由。我认为这是占用大部分交换空间的原因,但我需要进一步研究 Java 堆如何影响 Linux 交换和内存/性能。任何有关上述 java 堆配置对系统性能影响的指针都将非常有帮助。
我只使用 Linux 大约一个月。我正在运行 Mint 13。我正在尝试使用 www.goproblems.com,但它告诉我我的 IcedTea 已过期。我希望有一个包裹,但我找不到它。我尝试从源代码构建它,但失败了。
我读到它需要 GTK+,但是当我检查出来时,该站点说 GTK+ 依赖于我可能必须从源代码安装的 5 个其他软件包。
我的问题是:如果有冰茶套餐,它在哪里?
(另外,有人可以推荐一个在线资源,教我如何做好这件事吗?)
我正在尝试在 Linux 6.1 上安装 Oracle 11g r2,但几天后我没有成功。当我完成了 oracle 11 g 的所有先决条件后。但是当我运行安装程序时,我收到了这个错误
Checking Temp space: must be greater than 80 MB. Actual 18741 MB Passed
Checking swap space: must be greater than 150 MB. Actual 4095 MB Passed
Checking monitor: must be configured to display at least 256 colors
>>> Could not execute auto check for display colors using command /usr/bin/xdpyinfo. Check if the DISPLAY variable is set. Failed <<<<
Some requirement checks failed. You must fulfill these requirements before
continuing …Run Code Online (Sandbox Code Playgroud) 我的系统中有一个 Java .jar 正在运行。我怎么知道那个 .jar 正在使用哪个 JRE?我在多个位置有多个 JRE。
该which java命令产生
/usr/bin/java
Run Code Online (Sandbox Code Playgroud)
$JAVA_HOME 被设定为 /usr/java/jdk-1.6.0
ps -ef 产生
\xyzusr 5206 1 0 02:10 ? 00:00:00 ScrapJAR -p -u 2694 -g 15464 -- java -server -XX:+AggressiveHeap -Xms2048m -Xmx2048m -Xss512k
Run Code Online (Sandbox Code Playgroud) java ×10
bash ×2
arch-linux ×1
command-line ×1
cryptography ×1
fonts ×1
gtk ×1
jdk ×1
kerberos ×1
linux ×1
linux-mint ×1
openldap ×1
openssl ×1
path ×1
performance ×1
process ×1
shell-script ×1
sort ×1
swap ×1
unicode ×1