【问题标题】:Converting batch to sh将批处理转换为 sh
【发布时间】:2014-06-13 03:30:11
【问题描述】:

我需要将这两个文件转换成 sh。 我该怎么做?

文件 1:

"C:\Program Files (x86)\Java\jdk1.7.0_55\bin\javac.exe" -cp . -d ./bin/ ./DavidScape/*.java

文件 2:

@echo off
cd ../bin
color 0a
Title DavidScape 508
"C:\Program Files\Java\jdk1.7.0_21\bin\java.exe" DavidScape/Server 43594
pause

【问题讨论】:

  • 两者完全相同,复制/粘贴错误?
  • 对不起.. 它们是两个不同的文件,但它们都执行相同的功能。一个编译 RSPS,一个运行服务器。但是,是的,它们是相同的代码。

标签: batch-file sh


【解决方案1】:

javac 替换以javac.exe 结尾的长而丑陋的Windows 路径名。

如果javac 二进制文件位于非标准位置,您可能需要调整PATH(在这种情况下,错误消息将为javac: command not found 或类似的内容)。

您的脚本应该以shebang 行开头。 所以:

#!/bin/sh
#PATH=$PATH:something maybe?
javac -cp . -d ./bin ./DavidScape/*.java

您可能还需要将binDavidScape 目录复制到位。

您不需要拥有两个内容相同的单独文件。只需重复使用相同的文件即可。

【讨论】:

  • 谢谢。 #path=$path: 可能是什么?是我把java路径放在哪里,对吧?替换“可能的东西?”
  • 不应该是必要的,但如果是,那么取消注释并调整它,是的。注意PATH 需要大写。
  • 谢谢。另外,我发现我做错了什么。我确实通过了错误的代码.-。给我一秒钟找到第二个。
  • @echo off cd ../bin color 0a Title DavidScape 508 "C:\Program Files\Java\jdk1.7.0_21\bin\java.exe" DavidScape/Server 43594 pause 我假设它'只需重新调整您的代码以满足我的需求,这很容易吗?
  • @tripeleee 当我运行 .sh 时出现:(使用 SSH 连接)-bash: ./compile.sh: Permission denied 或 -bash: ./compile.sh: /bin/ sh^M:错误的解释器:没有这样的文件或目录
【解决方案2】:

第一: 而不是使用:“C:\Program Files (x86)\Java\jdk1.7.0_55\bin\javac.exe”,尝试设置 JAVA_HOME 变量或将 bin 添加到 PATH 系统变量,然后只调用 javac

第二: 那么 .sh 和 .bat 文件看起来都一样:

javac -cp . -d ./bin/ ./DavidScape/*.java

【讨论】:

    猜你喜欢
    • 2019-05-11
    • 2015-11-23
    • 2013-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-01
    • 2012-01-10
    • 2014-05-30
    相关资源
    最近更新 更多