1

我在大学学习了一年的计算机科学,结果发现很少有计算机安装了 jdk。我可以从我的记忆棒上运行 eclipse 便携版,所以编译 java 应该是可能的。

我想要的是一个在系统上设置环境变量的批处理文件,这样我就可以从我的记忆棒运行便携式版本的 jdk。我似乎无法更改系统变量,但可以更改用户变量。

到目前为止,我将以下代码作为批处理文件,尽管它在运行时仍然给我留下 javac 无法识别的消息。作为最后一点,我应该指出我没有大量的批处理文件经验。

echo %path% > stored_path.txt
setx PATH "%cd%PortableApps\CommonFiles\OpenJDK\bin;%PATH%"
setx JAVA_HOME "%cd%PortableApps\CommonFiles\OpenJDK"
setx CLASSPATH "%cd%PortableApps\CommonFiles\OpenJDK\bin;%CLASSPATH%"

感谢你给与我的帮助。

更新 04/10/13 - 16:54:

只是为了澄清 Eclipse 本身工作正常并且完全可用。但是,我有一个 jdk 保存在记忆棒上,就像我从打开到该目录的控制台调用 javac 一样,它工作正常。我想知道的是,Windows 是否可以通过更改用户环境变量来从系统上的任何目录中识别此命令。

我刚刚想到的一个想法(我现在无法测试它),这会使另一个文件夹中的 javac exe 文件的快捷方式起作用吗?

4

2 回答 2

1

无需永久设置环境变量!

只需为程序的当前会话设置它们。这是我为启动 Eclipse 设置而制作的批处理脚本。

@echo off
setlocal
pushd "%~dp0"
if not exist eclipse.exe exit /b 1
if not exist jdk1.6.0_45\ exit /b 2
if not exist apache-maven-2.2.1\ exit /b 3
set "JAVA_HOME=%~dp0\jdk1.6.0_45"
set "MAVEN=%~dp0\apache-maven-2.2.1"
set "M2_HOME=%MAVEN%"
set "MAVEN_OPTS=-Xms512m -Xmx1024m"
set "CLASSPATH=.;%JAVA_HOME%\jre\lib\ext;%CLASSPATH%"
set "PATH=%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%MAVEN%\bin;%PATH%"
rem M2_REPO
mklink /d jre "jdk1.6.0_45\jre"
start eclipse.exe -vm "%JAVA_HOME%\bin\javaw.exe" -data ".\workspace"
rem cmd /k
popd
endlocal
exit /b 0

这设置了我需要的所有内容并使用这些设置启动 Eclipse,而无需修改变量。

我的文件夹结构:

  • 蚀\
    • jdk1.6.0_45\
    • apache-maven-2.2.1\
    • 工作区\
    • eclipse.exe
    • 所有其他 Eclipse 文件夹和文件。
于 2013-10-04T14:19:42.470 回答
0

我们的学校电脑没有安装 git,所以我把便携式版本的msysgit放在我的 USB 棒上。这为您(除了 git)提供了一个可移植的MSYS,它是一个带有大多数标准 linux 工具(如和)的bourne shelllsdf

所以,我使用了 shell,而不是 windows 命令行。然后,对于 shell,我创建了一个小的 bash 脚本来设置环境路径。从要点:

要让脚本(“env_setup.sh”)在每次启动 git-shell 时执行,您需要将脚本放入 msysgit 文件夹的“etc/”目录中。

之后,您需要编辑“配置文件”文件,该文件在每次启动时由 shell 执行。

在文件末尾添加以下行:

# Setup the environment-variables
. /etc/env_setup.sh

这是设置环境变量的脚本:

#!/bin/bash

# Resources:
# http://stackoverflow.com/questions/623518
# http://stackoverflow.com/questions/59895
# http://markashleybell.com/articles/portable-git-windows-setting-home-environment-variable

# Get the directory this script is in:
DIR=$(cd $(dirname "$0"); pwd)
# Get only the Flash-Drive letter (e.g. "F")
FLASH=${DIR:1:1}
echo "We determined your USB-drive to be on $FLASH:\\"
# Set the home-path to the Flash-drive to get portable SSH-keys:
# --- You'll want to change this to your prefered Home-directory!
export HOME=/$FLASH/PortableApps/git/home/luke
echo "I set your Home-directory to '$HOME'";

### --- EXAMPLES ---

# Set the Java-Home variable to a JDK on USB-Stick:
export JAVA_HOME=/$FLASH/JDK1.6
# Add the Java-Tools to the JDK-folder:
export PATH=$PATH:/$FLASH/JDK1.6/bin

# Add a Maven from your USB-drive to the PATH:
export PATH=$PATH:/$FLASH/PortableApps/apache-maven/bin

# Add Node.js from the local pc to your PATH:
export PATH=$PATH:/c/Programms/nodejs

在这里,您可以看到一些示例,包括我在同一个 USB-Stick 上使用的 JDK。它被添加到 中PATH,因此您可以在任何您喜欢的地方编写javac并始终使用指定的 JDK。

请注意,这仅适用于一个会话,并且仅适用于 MSYS shell!

于 2013-10-04T16:51:06.913 回答