批量文件从记忆棒设置jdk

时间:2013-10-04 11:24:07

标签: java batch-file

我在大学做了一年的计算机科学,事实证明,很少有计算机安装了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文件的快捷方式?

2 个答案:

答案 0 :(得分: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的行家-2.2.1 \
    • 工作空间\
    • 的eclipse.exe
    • 所有其他eclipse文件夹和文件。

答案 1 :(得分:0)

我们的学校电脑没有安装git,所以我将便携版msysgit放在我的USB-Stick上。这给了你(除了git)一个可移植的MSYS,它是bourne shell的大多数标准linux工具(如lsdf)。

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

  

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

     

之后,您需要编辑执行的“profile”文件   每次启动时都会通过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中使用!