2013-10-04 32 views
1

我在我的大学做了一年的计算机科学,结果发现有很少的计算机上安装了jdk。我可以从我的记忆棒中运行eclipse,所以编译java应该是可能的。批处理文件从记忆棒中设置jdk

我想要的是在系统上设置环境变量的批处理文件,以便我能够从记忆棒中运行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%" 

感谢您给我的任何帮助。

更新13年4月10日 - 16:54:

只是为了澄清Eclipse本身工作正常,完全可用。然而,我有一个jdk保存在记忆棒上,就好像我从打开该目录的控制台调用javac那样工作正常。我想知道的是,如果只有更改用户环境变量,Windows才能从系统上的任何目录识别此命令。

一个想到我刚刚发生的事情(我现在无法测试它),是否会在另一个文件夹中创建一个快捷方式来执行javac exe文件?

+0

尝试在命令行窗口中手动运行所有命令。什么是setx? – SubOptimal

+0

有关您尝试安装JDK的计算机的操作系统的更多详细信息将非常有用。 – cete3

+0

“我在日子里”有同样的限制,但我使用我的USB棒上的msysgit-shell。下面是如何设置它的一个示例:https://gist.github.com/LukasKnuth/1992463 –

回答

0

我们学校的计算机没有安装git的,所以我把msysgit便携版在我的U盘。这给你(除了git)便携式MSYS,这是一个bourne shell与大多数标准的Linux工具(如lsdf)。

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

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

之后,您需要编辑。在“配置文件” -file,这是由外壳每它的推出时间执行

添加下面一行在 文件的末尾:

# 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中工作!

+0

出色地工作,谢谢:D – user163911

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文件夹和文件。