我正在寻找一个 Live CD 发行版,它为我提供了使用 Internet 和 OpenOffice(或与 M$ Word 兼容的其他办公应用程序)的全功能环境。
我想过在 USB 闪存驱动器上安装像 Ubuntu 这样的主流发行版并自己添加软件,但我必须获得一个快速的 8 GB USB 记忆棒,而且我会失去 CD/DVD 的附加安全性——这就是对 rootkit 的抵抗并保证我不会破坏我的系统上的任何东西。
是否有可能在 Linux 中以一种可以被视为ps某种别名的方式运行 Java 进程?当它关闭时重新启动它会更容易。
我正在尝试在 Lion (Mac OS X 10.7.2) 上运行 James SMTP 服务器。当我这样做时:
sudo JAVA_HOME=/Library/Java/Home ./james-2.3.2/bin/run.sh
Run Code Online (Sandbox Code Playgroud)
它工作正常。
但是,我想让 JAVA_HOME 成为环境变量,以便其他应用程序也可以看到它。
我编辑 ~/.bash_profile 看起来像这样:
export JAVA_HOME=/Library/Java/home
Run Code Online (Sandbox Code Playgroud)
并且该变量似乎从命令行可见,如下所示:
$ echo $JAVA_HOME
/Library/Java/home
Run Code Online (Sandbox Code Playgroud)
但是当我像这样再次运行 james 时,我收到了关于 JAVA_HOME 的警告:
$ sudo ./james-2.3.2/bin/run.sh
ERROR: JAVA_HOME not found in your environment.
Please, set the JAVA_HOME variable in your environment to match the
location of the Java Virtual Machine you want to use.
Run Code Online (Sandbox Code Playgroud)
任何想法我做错了什么?为什么运行 james 的命令看不到 JAVA_HOME 环境变量?
非常感谢任何信息,谢谢!
目前我正在考虑在内核空间中运行 jvm 作为(也许是 linux)内核模块的想法。我看到了这个想法的很多优点。
当然,这种系统的最大优点是内核空间开发的主要简化。但它的发生是因为不同的方面:
1)每个具有相对次要低级知识的Java开发人员都能够开发内核模块。是的,这肯定不是一个很好的可能性:-),特别是如果我们看到大多数开源 Java 用户空间项目的当前代码质量,但是......在内核空间中也没有必要发生同样的事情。
2)(也是真正的目标):JVM可以解决内核开发最大的问题,就是内存保护的缺失。如果没有其他问题(fe jit 编译器错误或低级硬件问题),从 java 编译的二进制代码段从未对超出其范围的数据结构造成任何损害,尽管此类二进制代码的运行时安全检查导致了速度上的可衡量缺陷。
首先,它也不需要是一个 java 字节码解释器。JIT(即时编译器)可以存在于系统用户空间中,仅映射内核空间中已编译的二进制文件(实际上:内核模块)。只有命名空间管理器和垃圾收集器需要在内核空间中运行。
其次,它不需要大、慢和可怕。这是因为在用户空间 jvms 的情况下使用大的、无效的库,并且在例如用 java 编写的驱动程序的情况下没有相同的理由。
我能看到的唯一后备是实时功能。当然,用 java 来做要困难得多,因为我们对内存管理的次要细节的控制要少得多。
我很好奇,如果这样的项目已经存在(?#1),并且如果没有(?#2),是否有任何明显的主要回退。
假设我有一个名为 DirectAction 的 Java 类
类中的某些方法具有“action”或“Action”一词
获取具有“Action”或“action”的所有方法的名称并将其写入外部文件的 grep 命令是什么?
例子:
public class DirectAction extends ERXDirectAction {
/**
*
* @param aRequest
*/
public DirectAction(WORequest aRequest) {
}
// ============================================================================================
// ACTIONS
/**
* Default Action
*
*/
@docDirectAction
public WOActionResults defaultAction() {
}
/**
* @return goes to login page for student
*/
@docDirectAction
public WOActionResults studentAction() {
);
return nextPage;
}
/**
* @return goes to Admin login page
*/
@docDirectAction
public WOActionResults adminAction() {
return nextPage;
}
/** …Run Code Online (Sandbox Code Playgroud) 我想知道是否$PATH 级联条目。在这里你们都需要和我一起信仰飞跃,但它就在这里。
假设我们有一个 Java 可执行文件,/usr/bin/java但此版本非常旧且过时。不幸的是,我们没有su访问权限,所以我们不能只是替换它。但是,我们可以在本地下载 JRE/JDK 的当前版本并指向更新的版本。我的问题是,bash 如何处理我们有两个或多个同名但位于两个或多个不同位置的可执行文件的情况?当我们java在控制台中键入内容时,bash 是否会以某种方式选择执行哪一个?假设/usr/bin有许多我们需要的其他可执行文件,如何$PATH寻找这样的东西才能正常工作?
理想情况下,当我们输入时,java -version我们应该看到:
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
Run Code Online (Sandbox Code Playgroud)
代替
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) Client VM(build 24.45-b08, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)
我确定这个问题之前已经被问过并且有一些与之相关的术语。我在 SE、SO 和一些论坛上闲逛,但没有找到任何结论。
我正在尝试在我的机器上安装以下软件debian jessie
root@www:~$ sudo update-alternatives --config java
[sudo] password for root:
There are 3 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-7-oracle/jre/bin/java 1082 auto mo de
1 /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java 1071 manual mode
2 /usr/lib/jvm/java-7-oracle/jre/bin/java 1082 manual mode
3 /usr/lib/jvm/java-8-oracle/jre/bin/java 1081 manual mode
Press enter to keep the current choice[*], or type selection number: 0
Run Code Online (Sandbox Code Playgroud)
当我想安装软件时,我得到:
> sudo ./install.sh
Your version of Java is not supported.
Please update your Java to version 1.8 …Run Code Online (Sandbox Code Playgroud) 我在其中创建了一个脚本/etc/profile.d并将其命名为jdk_home.sh. 内容jdk_home.sh如下:
#!/bin/sh
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
export PATH=$JAVA_HOME/bin:$PATH
Run Code Online (Sandbox Code Playgroud)
(我按照Stack Overflow 上这个问题的答案来设置 $JAVA_HOME)。
然后我source /etc/profile.d/jdk_home.sh在命令行上输入。之后,我打字echo $JAVA_HOME,它给了我以下输出:
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.131.x86_64
Run Code Online (Sandbox Code Playgroud)
输入后,echo $PATH我得到了这个输出:
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.131.x86_64/bin:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.131.x86_64/bin:/bin:/bin:/bin:/bin:/bin:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-0.b13.el6_8.x86_64/bin:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121/bin:/bin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin:/bin:/usr/apache/apache-ant-1.9.9/bin:/bin:/bin:/bin:/bin:/bin:/bin
Run Code Online (Sandbox Code Playgroud)
然后,我在名为 的项目文件夹中打开了另一个终端dal。我放在build.xml那个文件夹里。我的build.xml有以下内容:
<project name="Hello World Project" default="info">
<target name="info">
<echo>Hello World - Welcome to Apache Ant!</echo>
</target>
</project>
Run Code Online (Sandbox Code Playgroud)
我在命令行输入 ant :
[root@gksrv dal]# ant
Run Code Online (Sandbox Code Playgroud)
这产生了以下输出:
Unable to locate tools.jar. Expected to find it in /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-0.b13.el6_8.x86_64/lib/tools.jar
Buildfile: /root/Desktop/dal/build.xml …Run Code Online (Sandbox Code Playgroud) 我正在尝试在需要 openjdk-6-jre 和 openjdk-7-jre 的 Ubuntu 上下载 XDM(xtreme 下载管理器)。但我无法安装它:
sudo apt-get install openjdk-7-jre
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package openjdk-7-jre is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'openjdk-7-jre' has no installation candidate
Run Code Online (Sandbox Code Playgroud)
我有 Java 版本 10
java --version
openjdk 10.0.2 2018-07-17
OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.2)
OpenJDK 64-Bit …Run Code Online (Sandbox Code Playgroud)